2017.02.06
抽象类,接口和final关键字
抽象类:使用abstract关键字定义的类叫抽象类,一般抽象类都是父类,而且抽象类不能被实例化。当一个类继承的父类是抽象类时,需要我们把抽象类中的所有抽象方法全部实现。
抽象方法:使用abstract关键字定义的方法叫抽象方法。如果某个类里面有抽象方法,那么这个类必须定义为抽象类。抽象类里可以有非抽象方法。(语法:abstract void TestAbstract();)
接口:由interface关键字来定义,是特殊的抽象类。接口不能被实例化,接口的方法全是抽象方法。
注意:一个类可以实现多个接口,用关键字implements;一个接口不能继承其他类,但是可以继承别的接口。还有个小技巧:我们经常把常用的变量定义在接口中作为全局变量来使用,访问形式:接口名.变量名。
在接口中定义的方法必须被定义为public或abstract形式,其他修饰权限不被编译器认可。
Java的继承是单继承,也就是一个类最多继承一个父类。接口的出现可以解决这种问题,可以把接口看做继承的补充。如果修改父类,那么继承该父类的所有子类都要修改,而接口可以避免这样的问题,只需要修改实现接口的类即可。
final关键字可以声明变量,方法和类。
final声明的常量一旦被设定就无法再修改,而且如果那个变量由final关键字修饰,那么一定要赋值;
final声明的方法不会被子类重写(覆盖);
final声明的类不可以被继承。
未完待续