Java中的面向对象3
final
可以修饰变量、方法、类。被final修饰的变量称之为常量。
final修饰的基本数据类型,其值不可以发生改变
final修饰的引用数据类型,其地址不可以发生改变
final修饰成员变量,必须保证成员变量在创建对象前有值
final修饰静态变量,必须保证静态变量在类加载成功之前赋值成功
final修饰的类称之为最终类,不能被继承
final修饰的方法不能被重写或者隐藏
final修饰的方法可以被继承
abstract(抽象)
被abstract修饰的类称之为抽象类,被abstract修饰的方法称之为抽象方法。一个类中如果有抽象方法,那么这个类必须成为抽象类。
抽样类不能实例化。
抽象类必须有一个子类,子类可以实现抽象类中的抽象方法。如果子类实现类抽象类中的所有方法,那么就可以通过向上造型来使用抽象类。
抽象类是可以写构造方法的。
抽象类可以提供普通方法
抽象类中的抽象方法可以重载。
抽象类的子类如果没有完全实现父类的抽象方法,那么子类也需要变成抽象类,子类的子类再去实现抽象方法。
final修饰的类是最终类,不能被继承,抽象类必须亚被继承后实现抽象方法,所以final不能修饰抽象类。
抽象类中的抽象方法,不能使用private修饰,因为抽象方法必须要被子类实现。
抽象类中的抽象方法,不能使用static修饰,因为静态方法可以直接使用类名调用,在抽象方法中没有意义。
受java的单继承的影响,抽象类不能够同时继承多个父类。