C++与Java的异同

属性

C++ 中public/privite : 修饰成员属性、成员变量、成员方法。而Java中public修饰词后没有冒号‘:’

继承

1.C++ 中继承父类 class Man : public People 关键字为
而Java中class Man extends People 关键字为entends
2.C++ 中父类的成员方法可以在子类的成员方法里实现

构造方法

1.C++ 中执行的构造方法Man(int age) : People(age),子类可以没有构造方法,一旦有一般要调用父类的构造方法。
2.而Java中,构造方法不能继承:子类继承父类所有的成员变量和成员方法,但不继承父类的构造方法 ;调用父类构造方法:子类的构造方法必须调用父类的构造方法!关键字supper()
3.创建有参构造函数后,系统就不再有默认无参构造函数;如果没有任何构 造函数,系统会默认有一个无参构造函数

实例化

1.C++ 中子类的实例化对象可以指定去执行父类中的方法 :
m->People:sayHello(其中Man m = new Man(),People是Man的父类)
2.C++ 中的虚函数,关键字
virtual*,People *p =new Man()实例化的 p 的是指向父类People;如果在需要执行的方法前加入 virtual 关键字,就是指向子类Man。

子类Man中 virtual void sayHello(){printf("man say\n");}
父类People一样 virtual void sayHello(){printf("people say \n");}
此时 p->sayHello() 就是指向子类Man中的方法。
但是在Java中不加virtual就是指向子类Man

纯需函数、抽象类

1.C++ 中的纯虚函数和 Java 中的抽象函数一样;父类中一旦出现虚函数,子类必须去实现。Java中一旦有抽象方法就是抽象类;C++的类中的全部方法是纯需方法时才是纯虚类,相当于 Java 中的接口(全为抽象方法)。

字符串

2.C++ 中字符串std::string;而 Java 中为String、StringBuffer、StringBuilder,其实 String 是Java中的一个类,因使用平凡,故被简化 String str = “Hello world !”;操作少量的数据使用String(String值是固定的,每次对它操作就会重新生成String对象,耗费大量内存空间),多线程大量数据使用StringBuffer,单线程大量数据使用StringBuilder。

你可能感兴趣的:(C++与Java的异同)