Java中抽象类,及其与final之间的关系
抽象类使用场景及使用场景
抽象类可以理解为不完整的设计图,一般作为父类,让子类来继承。
当父类知道子类需要完成某些行为,但是每个子类的该行为实现又不同,于是父类就将该行为定义为抽象方法的形式,具体实现交给子类去实现,此时这个类就可以定义为抽象类。
抽象类的注意事项(面试可能会考)
最重要的特征:得到了抽象方法但是失去了创建对象的能力。(不能创建对象的原因:因为抽象类中的是抽象方法,没有方法体,假如他能创建对象,那他调用抽象方法时会出错)
类有的成员(成员变量、方法、构造器)抽象类都具备
抽象方法只有方法签名,没有方法体(即那个大括号)
抽象类中不一定有抽象方法,但有抽象方法的类一定是抽象类
一个类继承了抽象类必须重写玩抽象类的全部抽象方法,否则这个类也必须定义为抽象类。
不能用abstract修饰变量、代码块、构造器。
final与abstract的关系
互斥关系
abstract定义的抽象类作为模板让子类继承,而final定义的类无法继承。
抽象方法定义功能让子类重写,但final定义的方法子类无法重写
还没有评论,来说两句吧...