以下内容是自己学习后的一个备忘笔记,理解上肯定有很多问题,望有耐心的大神能给予指点,谢谢
定义:抽象是对事物的一个模糊定义,它主要对那些有共性功能但具体实现不同的对象进行抽象,提高代码的复用性和简洁性
注意:1、抽象类不能被实例化,一般都是实例化它的子类
2、抽象类的子类必须重写它的所有抽象方法才可以被实例化,否则子类仍是抽象类
3、抽象方法所在的类必须定义为抽象类,抽象类中可以有非抽象的方法
4、抽象方法没有方法体
问题:
1、抽象类为什么不能被实例化?
首先抽象类被实例化是没意义的,因为抽象类中的方法没有方法体,实例化后无法调用方法,其次抽象类本身就是对事物的抽象描述,描述的并不是一个具体的对象,无法实例化;
2、abstract与哪些关键字不能共存
(1)private
原因:抽象的方法是需要被覆盖的,加上private后子类就无法覆盖了
(2)final
原因:final修饰的方法不能被覆盖,abstract修饰的方法必须被覆盖否则就没意义了
final修饰的类不能被继承,abstract修饰的类是抽象类,需要通过继承来实现它的功能
(3)static
原因:static修饰的方法能直接被类名调用,但abstract修饰的方法没有方法体调用无法运行