未完待续。。。
- 代码块先于构造方法执行,不管类中有多少个代码块,都会先将所有代码块执行完再执行构造方法和其他方法。
- 类中如果没有自定义的构造方法,那么JVM会提供默认的无参构造方法;如果类中有自定义的构造方法,那么JVM不会提供默认的构造方法,如果此时想使用无参构造方法,需要自己显式地创建无参构造方法。
- 面向对象的三大特征:封装、继承、多态。单继承,多实现。
- 当父类和子类具有相同属性时,可以使用super和this关键字进行区分;如果不使用关键字,默认是this属性。需要注意的是,这两个关键字都是指代对象的,所以不能用于静态方法和静态代码块中(因为静态方法和静态代码块是数据类的,不属于对象)。
- 每次创建子类对象时,都会先完成父类中的构造方法。如果父类中自定义了构造方法,JVM不再提供默认的构造方法,那么在子类中应该使用super() 显式地调用父类的自定义方法,该自定义方法中有什么参数,super()的参数列表中也就传入相应的参数。
- 方法名相同,但参数列表不同,属于方法重载(不关心方法返回值)。在构造方法中也是存在方法重载,比如有参构造方法和无参构造方法。
- 如果一个类中有多个构造方法,在某个构造方法中想要调用另一个构造方法,可以使用this()关键字来调用,如果有参数,就在括号中加上参数传递过去。
- 方法重写,要求方法名、参数列表、方法返回值必须都是相同的。
- Java中的4种访问权限:
- public:公共的,访问权限不受控。
- private:私有的,只能在当前类中被访问;如果是在别的类中创建了该类的对象并访问private属性,也是不能被访问的。
- default:默认的;如果没有指定任何访问权限,那么JVM会提供默认访问权限,就是只能在当前包中被访问,即使在当前包的子包中也是不能被访问的。
- protected:受保护的;可以被同类、同包、子类(不管子类是不是在同一个包下)中访问。
- 抽象方法所在的类一定是抽象类,抽象类无法创建对象;抽象类中不一定有抽象方法。