【抽象类】
抽象方法是没有执行部分的方法,如果一个类中至少有一个抽象方法,则该类必须声明为抽象类。需要抽象类的子类来为抽象方法提供方法的实现,提供执行部分。
【final】
用final修饰一个类,意味着该类成为不能被继承的最终类(处于安全或效率上的考虑)
用final修饰类成员,说明这个成员变量是常量,不能被修改。
【static】
静态变量,被所有类对象共享,在没有实例时就存在
【transient & volatile】
临时变量 和 异步保护(维护变量在冰法线程的前后一致)
【封装】
目的:
访问权限:
- 隐藏类的实现细节
- 迫使用户通过接口去访问数据
- 增强代码的可维护性
一个源程序中可以声明多个类,但是用public修饰的类只能有一个,而且该类名必须和文件名一致
访问权限 同一个类 同一个包 不同包的子类 不同包非子类 private √ default √ √ protected √ √ √ public √ √ √ √
【实例成员和类成员】
类成员用static修饰,即静态成员,可以在类不被实例化时通过类名直接使用,也可以通过对象名来调用
而实例成员只能通过对象名调用
类成员分为:类方法(静态方法、静态函数)和类变量(静态变量)
main()在程序开始执行时被调用,所以必须申明为static
【继承】
this$super super代表父类的一个对象
注意成员变量/函数被覆盖(隐藏)的情况,与C++类似,不赘述。
实例方法被覆盖,静态方法被隐藏。。
【接口和包】
不太懂。。。