Java基础03
final关键字
- final可以修饰:类,方法,变量
- 修饰类不能别继承
- 修饰方法不能被覆盖
- 修饰的变量是一个常量,只能被赋值一次
内部类只能访问被final修饰的局部变量
public static final double PI = 3.14
抽象类abstract
- 多个类出现相同功能,但是功能主体不同,这就可以向上抽取,只抽取功能定义,不抽取功能主体
- 抽象方法一定要在抽象类中
- 抽象类不可以实例化(new)
- 特殊:抽象类中可以不定义抽象方法,目的在于不让该类建立对象
接口
接口中成员修饰符是固定的
- 成员常量: public static final
- 成员函数: public abstract
- 接口的出现将“多继承”通过另一种形式体现出来,即“多实现”。
- 初期理解,可以认为是一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口形式表示
- 接口与接口间存在多继承
- 降低了耦合度
- 对外暴露规则
- 增强程序扩展性
多态
- 指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)
父类的引用指向自己的子类对象
在多态中: 非静态成员函数在多态调用时,编译看左边,运行看右边
- 编译时期: 参阅引用型变量所属的类中是否有调用的方法。有编译通过,没有编译失败
- 运行时期: 参阅对象所属的类中是否有调用方法
在多态中: 成员变量在多态调用时,编译,运行都看左边
- 在多态中: 静态成员函数在多态调用时,编译,运行都看左边
instanceof
if(a instanceof Cat)