- Java大部分情况下是通过new关键词新建一个对象,跟C++类似,也是将标识符当作一个指针,指向堆中的实际空间。如果直接像C++一样在栈中给对象分配空间,是不行的,没有实际空间。
- Java的new关键词会给类中变量赋初始值(类似C++中的全局变量),而C++不会。
- Java有构造函数,但他没有析构函数。
- 可以将多个类定义在一个.java文件中,但只能有一个类是public。
- this指针可以代替类的构造函数。
- Java只能单根继承,C++可以多重继承。
- 不写extends,默认继承java.lang.Object类,所以Java的类存在一些默认方法。
- super()是指向父类的应用,类似于this指针。如果子类没有调用父类构造函数,在子类构造函数中会默认调用super(),即调用父类默认构造函数。
- Java抽象类需要关键字abstract,他没有办法被new,他的子类必须实现父亲们的所有抽象方法,不然也要变成抽象类。
- 如果一个类中都为抽象函数,那么这个类定义为接口(interface|没有class关键字),一个类可以实现多个接口(implement),接口可以继承多个接口,继承和实现不冲突。
- 子类可以进行类型转换成父类,父类在一定条件下也可以转换为子类(父类本身由子类得来)。
- Java中多态不用virtual关键字。不用像C++实现多态用基类指针或者是用函数中的基类引用调用,直接用基类名字就可以实现多态。
- 静态变量和方法可以直接通过类名调用,静态方法不能引用非静态方法,不能使用非静态变量。
- 类中方法执行顺序:
static代码块(new之前,只执行一次) > 匿名代码块(new之后) >构造函数(new之后)
Java基础随笔
原文:https://www.cnblogs.com/JMWan233/p/11301845.html