1.多态(多种状态)
⑴同一事物不同时刻表现不同状态。
⑵条件:❶要有继承,父类可表示子类,他们之间有关系。
❷要有重写(特指抽象方法)重写后调用子类自己。
❸父类引用指向子类对象。
⑶编译期间是父类类型,调用是父类中定义方法
运行期间是子类类型,调用是子类的方法
编译期间看左边,运行期间看右边
⑷对于静态方法,成员变量,编译运行都看左边。
⑸非多态扩展性不强,而多态扩展性强。
⑹❶向上转型:子类类型自动转为父类类型。
❷父类类型不能访问子类特有的方法。
办法:将父类类型强制转换。
instanceof:判断引用实际类型是否为后面指定的具体类型。
2.final关键字(声明属性,方法,类)
⑴类:final修饰类不能被继承。 eg:String
⑵方法:final修饰方法不能被子类重写。
⑶属性:final修饰成员变量为常量,值不变
直接对其初始化赋值建议直接使用static修饰
3.接口(interface)
⑴看作一个比较纯正的抽象类,用作设计层面使用,具体的实现交给具体的类。
⑵eg:USB接口:定义了连接传输规范,其他USB设备(u盘,usb风扇)来实现具体功能
⑶类实现(继承)接口。
Impl—implements(实现)
类只能继承一个类
类可实现多个接口
接口可以继承多个接口
4.抽象类和接口
⑴共同点:❶都是一种抽象
❷都不能被实例化
❸都是用来被其他类继承实现
⑵区别:
抽象类:❶可以定义成员变量
❷可以有构造方法
❸可以定义非抽象成员方法
(抽象类中包含抽象方法,不能创建对象,其他功能与正常类设计无区别)
接口:❶接口只能定义常量,抽象方法,静态方法,,默认方法
❷接口中不能有构造方法
❸接口可以继承其他多个接口