一、多态
所谓多态就是一个引用在不同情况下的多种状态。如父类中声明的方法子类中都重写了,那如果声明一个对象
父类 对象名=new 子类();
则 对象名.A() 在运行时如果
(1)A()在父类子类中都有,则调用子类中的A();
(2)A()只有父类中有子类中没有,则调用父类中的A();
(3)A()只有子类有而父类没有,则编译出错(因为编译时对象类型是父类,而父类中没有这个方法,只有在运行时该对象类型才是子类);
多态跟继承、重写是息息相关的。
二、抽象类
1、父类中提供一些抽象方法,只声明而不用实现,具体实现让他的子类来做。就好比抽象类知道要做一件事,但具体怎么做他不知道或者他不管,而让继承他的子类(子孙)来具体实现(有抽象方法的类必须为抽象类abstract。)
2、同样的父类中的抽象方法在子类中必须要将其实现。
3、抽象类中也可以有方法是普通方法,不过同样的是抽象类中的所有方法都不能在抽象类中实现。
4、抽象类不能被实例化
三、接口
1、当一个类实现一个接口时,要将该接口中声明的方法全部实现(即重写接口中的类)
2、接口不能被实例化
3接口中所有方法都不能有主体
4、一个类可以实现多个接口,
类名 implement 接口1,借口{}
5、
6、java中的类都是单继承的,为了弥补这一缺点而引入接口,即一个类可以同时继承一个类并实现好几个接口
子类1 extends 父类 implement 接口1,接口2{}
7、只要一个类A实现了接口B,则另一个类C若在声明方法时将接口B作为引用变量,则在主函数调用该方法时可以传入类A的实例
四、final
1、final 修饰的成员变量必须有程序员显式地指定初始值(赋初值)
2、final修饰的类表示该类不能被继承