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

抽象类的由来:

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

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

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

  • 抽象类定义的格式:

public abstract class 类名 {

}

  • 抽象方法定义的格式:

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

抽象类的细节问题:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值