A
抽象类
什么是抽象类:如果在一个类的前面加上关键字abstract,这个类就是抽象类。
抽象类无法直接实例化;抽象类里可以存在抽象方法,但也可以不存在抽象方法;
抽象方法的特征:由abstract修饰的方法为抽象方法,抽象方法只有方法的定义,没有方法体实现,用一个分号结尾。
如果一个类继承了抽象类,必须重写其抽象方法(除非该声明为抽象类)。
abstract 和final这些关键字不可以同时修饰一个类,因为final使得类不能被继承,而abstract修饰的类如果不被继承就没有任何意义。
抽象类有什么意义
--为其子类提供一个公共的类型;
--封装子类中的重复内容(成员变量和方法);
--定义了抽象方法,子类虽然有不同的实现,但该方法定义是一致的。
接口
接口可以看成一种特殊的抽象类,即只包含抽象方法的抽象类。
interface是创建接口的关键字;
抽象类和抽象类之间可以继承(单继承);抽象类和接口之间只能实现(implements);接口和接口之间只能继承(可以多继承)。
普通的类与抽象类之间用继承(单继承),普通的类与接口之间用实现(多实现)。
多态(意义)
一个类型的引用指向不同对象时会有不同的实现;
同一个对象,造型成不同类型时,会有不同的功能。
强制转型
可以通过强制转换将父类型转换为子类型变量,前提是该变量指向的对象确实是该子类型。[如果不符合将出现:类型强制转换异常:ClassCastException]
也可以通过强制转换将变量转换为某种接口类型,前提是该变量指向的对象确实实现了该接口。
instanceof关键字
对象instanceof类型:如果对象属于类型,则返回true;反之返回false.
匿名内部类
如果在一段程序中需要创建一个类的对象(通过这个类需要实现某个接口或者继承某个类),而且对象创建后,这个类的价值也就不存在了,这个类可以
不必命名,称之为匿名内部类。