KKB:抽象类

抽象类

概念:

抽象类必须使用abstract class 声明

一个抽象类中可以没有抽象方法。抽象方法必须写在抽象类或者接口中

格式:

abstract class 类名{  //抽象类

}

自己理解抽象类的作用、为什么有抽象类: 我们清楚父类与子类的关系,子类是继承了父类的属性和方法。当两个不同的类,我们想给他们创建一个父类的时候,我们应该寻找两个类的共同点,由于两者相差比较大,所以我们只能抽象的表示他们的共同点。这就是抽象类的来源。所以抽象类是不能直接实例化的,必须需要完善他的功能方法

 

抽象方法

只声明而未实现的方法称为抽象方法。抽象方法必须使用abstract关键字修饰

abstract class 类名{  //抽象类

      public  abstract void 方法名(); //抽象方法,只声明而未实现
}

 

 

常见的问题

不能被实例化(不能直接new)

不能使用final声明,因为抽象类需要有子类才有意义

 

刁钻的面试题: 抽象类能否有构造方法?

答案是有的,因为抽象类需要子类继承,在子类中就有super(),这个super指的就是抽象类,就是要先调用父类中的构造方法(默认是无参的super())。抽象方法不能实例化指的是我们程序员不能通过代码的方式实例化,但是子类在创建对象时,抽象父类可以被虚拟机创建

 

如果一个子类继承抽象类,那么必须实现所有的抽象方法。否则 子类只能定义成抽象类

 

 

 

 

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页