Java中关于 “抽象类” 的一些注意问题

抽象类的由来:

我们编写一个类时,往往会为该类定义一些方法,这些方法用来描述该类的功能具体实现方式,这些方法都是有具体的方法体的,所谓方法体就是有{ }。但是有些时候,某个父类只是知道子类该包含什么方法,但是不知道子类该如何实现这些方法,例如一个图形类应该有一个求周长的方法,但是不同的图形求周长的算法不一样。那该怎么办呢?此时就可以在父类中声明一个求图形类周长的抽象方法,但是该怎么实现就交给子类去处理。抽象类作用:继承的体系,抽象类强制子类重写抽象的方法,保证子类功能的完整性。

抽象类和抽象方法的定义:

当定义了抽象函数的类也必须被定义为抽象类,都用abstract关键字修饰。

  • 抽象类定义的格式:

public abstract class 类名 {

}

  • 抽象方法定义的格式:

public abstract 返回值类型 方法名(参数);

抽象类的细节问题

  • 抽象类和抽象方法都需要被abstract修饰。抽象方法一定要定义在抽象类中。
  • 抽象类不可以直接创建对象,也就是不能实例化对象(不能new),原因:调用抽象方法没有意义。
  • 只有覆盖了抽象类中所有的抽象方法后,其子类才可以创建对象。否则该子类还是一个抽象类。
  • 抽象类中可以不定义抽象方法。这个方法(非抽象函数)可以直接让子类使用。
  • 抽象关键字abstract不可以和关键字private共存,因为:private:私有的方法子类是无法继承到的,也不存在覆盖,而abstract和private一起使用修饰方法,abstract既要子类去实现这个方法,而private修饰子类根本无法得到父类这个方法。互相矛盾。

猜你喜欢

转载自blog.csdn.net/m0_38109046/article/details/88368273