자바 의 interface,abstract class 와 C++의 다 중 계승,가상 기본 클래스

2562 단어 자바
자바 와 C++의 주요 차이 점
1.자바 스 택 메모리 가 모두 자동 으로 관리 되 고 C+는 인공 적 으로 메모리 관리 가 필요 합 니 다.
2.Java 는 반 사 를 지원 합 니 다.C++는 반 사 를 지원 하지 않 습 니 다.
3.자바 단일 계승 은 인터페이스 로 만 다 중 계승 을 실현 할 수 있 습 니 다.C++는 다 중 계승 을 지원 하고 가상 계승 을 지원 합 니 다.
4.자바 는 역할 영역 내 변수 이름 바 꾸 기 를 지원 하지 않 으 며 패키지 이름 으로 구분 되 며 전역 변수 가 없습니다.C++는 역할 영역 내 변수 이름 을 바 꾸 고 이름 공간 으로 구분 하 며 전역 변수 가 있 습 니 다.이른바 전역 변 수 는 실질 적 으로 domain 이름 공간 입 니 다.
5.자바 는 플러그 인 클래스 를 지원 합 니 다.클래스 와 클래스 의 관 계 는 비평 행 관계 일 수 있 습 니 다.내부 클래스 는 외부 클래스 의 구성원 변 수 를 방문 할 수 있 습 니 다.C++의 모든 클래스 는 평행 관계 이 고 위조 플러그 인 관 계 는 우 원 을 통 해 실 현 될 수 있 습 니 다!
표면적 인 코드 차이
 
1.C++클래스 와 자바 클래스 의 비교:
// C++ class
class Parent
{
public:
	static int staticValue = 0;
public:
	void Method1()
	{
		cout << "C++ class!
"; } }; class Test : public Parent { private: int value1; const float value2 = 3.4; static void* value3 = nullptr; public: static const int value4 = 5; public: void Method1() { cout << Parent::staticValue << endl; this->Parent::Method1(); } static void Method2() { cout << value4 << endl; } };

 
// Java class
public class Parent
{
	public static int static_value = 0;
	public void method1()
	{
		System.out.println("Java class!");
	}
}

public class extends Parent
{
	private int value1;
	private final float value2 = 3.4;
	private static String value3 = null;
	public static final int value4 = 5;
	public void method1()
	{
		System.out.println(Parent.static_value);
		super.method1();
	}
	public static method2()
	{
		System.out.println(value4);
	}
}

2.C++자바 다 중 비교:
 
 
// Java   
public class TestJava {

	public static void main(String args[]) {

		abstract class Animal {
			public void eat() {
				System.out.println(" ");
			}
			public abstract void action();
		}
		
		class Dog extends Animal {
			public void eat() {
				System.out.println("   ");
			}
			public void action() {
				System.out.println("  ");
			}
			public void work() {
				System.out.println("    ");
			}
		}
		
		class Cat extends Animal {
			public void eat() {
				System.out.println("   ");
			}
			public void action() {
				System.out.println("   ");
			}
			public void work() {
				System.out.println("   ");
			}
		}
		
		Animal a = new Dog();
		a.eat();
		a.action();
		if (a instanceof Dog)
			((Dog)a).work();
	}
}


 
C++typeid,자바 사용 instanceof 키워드!

좋은 웹페이지 즐겨찾기