0%

抽象方法

引出抽象

求圆 ,矩形,三角形,面积

发现的问题

每一个图形计算面积的方式都不一样,所以每一个类都必须得要覆盖父类当中的 getArea方法,来去实现求面积的方式

带来的问题

怎么样保证子类必须得要覆盖父类当中定义的方法。父类不需要提供方法体

抽象方法

格式

在方法前面添加了一个关键字 abstract

抽象方法特点

  1. 抽象方法是没有方法体的
  2. 抽象方法必须得要定义在抽象类或接口当中
  3. 抽象方法不能是私有的 private,final, static

注意点

子类必须得要去覆盖此方法,在定义的时候不要方法体了。

抽象类

概念

abstract 修饰的类,就成为了抽象类,抽象类必须得要有子类才行。(抽象类一般都当作父类来继承)

抽象类当中的注意点

  1. 抽象类是不能直接创建对象的。
  2. 抽象类当中,可以有抽象方法 ,也可以有非抽象方法(普通方法:给子类调用的)
  3. 子类没有去覆盖抽象方法,把子类也变成抽象类
  4. 构造方法不能定义为私有化 (抽象方法必须得要让子类继承之后,才能实现内部的方法体。子类继承的话,先去调用父类的构造方法)
  5. 抽象类不能使用 final 来去修饰

抽象类与普通的类有什么区别

  • 普通类你有的(方法 ,字段,构造器),抽象类都有
  • 抽象不能创建对象。抽象类可以包含抽象方法,也可以包含非抽象方法
  • 抽象类必须有子类才有意义

↓赏一个鸡腿... 要不,半个也行↓