面向对象特征---多态
同一种事物,在不同的时刻表现为不同的状态
必要条件:
1.有继承,父类可以表示子类
2.有重写(抽象方法),重写后,调用子类的重写的方法
3.父类引用指向子类对象
4.当编译期类型是父类,运行期类型是子类时,被称为父类引用指向子类对象
多态调用成员方法:编译看左边,运行看右边
静态方法:编译运行都看左边
成员变量:编译运行都看左边
注意:变量不存在被子类复写这一说法,只有方法存在复写
转型:
向上转型:提高程序的扩展性
向下转型:为了使用子类中的特有方法
Final关键字
用法:修饰类,方法,属性.声明属性.
修饰属性:定义就必须直接赋值或者在构造方法中进行赋值,并且后期都不能修改
修饰方法:修饰的方法在子类里不可以重写
修饰类:不能被定义为抽象类或是接口,修饰的类不可被其他类继承
final属性赋值:
1.在声明时同时赋值,往往与static一起使用
2.声明时不赋值,必须在构造方法中逐一赋值
3.总的原则:保证创建每一个对象的时候,final属性的值是确定的
接口
生活中常见的接口:USB风扇,USB鼠标,U盘
面向接口编程:
从本质上讲,接口是一种特殊的抽象类,这种抽象类包含抽象方法.
定义:使用interface关键字来声明一个接口
使用:类使用implements关键字实现接口.在类声明中,Implements关键字放在class声明后面
抽象类,接口的共同点和区别:
共同点:
1.都是一种抽象
2.都不能被实例化
3.都是用来被其他类继承实现.
区别:
1.抽象类可以定义成员变量,可以有构造方法,可以定义非抽象的方法
2.接口只能定义常量,抽象方法,静态方法,默认方法.
接口不能有构造方法,但可以继承其他多个接口