Java基础------知识点整理(六)-----抽象

1.方法只有声明,没有具体实现时,该方法就是抽象方法,需要被abstract抽象画,只要含有抽象方法就是抽象类,所以也必须把类也用abstract修饰

格式:  

abstract   void   f();             
abstract  class Instrument{   coding .....}



2.抽象类不能被实例化,因为其抽象的方法没有意义


3.抽象类的子类必须覆盖所有的抽象方法后才能实例化,否则导出类仍然是抽象类


4.疑点

(1) 抽象类也有构造函数,用于给子类对象进行初始化(虽然不能自己创建对象)

(2)抽象类中可以不定义抽象方法,只有类名为抽象的,目的就是不让这个类创建对象(如ATW适配器的对象,这个类只有方法体,没有方法内容)

(3)abstract不能喝那些关键字共存

         (i)private:因为private私有化后,其子类继承不来,这就导致其子类永远是抽象类了,不能实例化

         (ii)static:static修饰的方法调用不需要创建对象,类调用就可以,但是抽象方法没有内容,不能被调用

         (iii)final:final修饰的方法不能覆盖,final修饰的类不能被继承,而抽象类必须继承后才能被实例化


5.抽象类与一般类异同点

相同点:都是用来描述事物

不同点:

            (1)一般类有足够信息描述,抽象类信息描述不足

             (2)一般类可实例化,抽象类不能实例化

             (3)一般类中不可以定义抽象方法,抽象类中既可定义抽象方法,也可以定非抽象方法

             (4)抽象类一定为父类,因为子类继承并实现后才能使用



你可能感兴趣的:(java)