概念:
如图,虽然父类里有相关方法,但由于这样的方法必须根据具体情况才能确定方法体如何实现(即过于抽象),因此这样的方法叫抽象方法,这样的父类叫抽象类。
抽象方法的写法:
(抽象方法所在类必须是抽象类)
在返回值类型前加上abstract,并且不写大括号及内容(方法体)。
抽象类的写法:
在class之前写上abstract
除此之外,抽象类也可以像普通类一样含有非抽象的方法
抽象类和抽象方法的使用
注意:我们无法创建抽象类的对象
所以我们必须通过子类继承来调用。此时子类必须override父类里的所有抽象方法。
(子类里的override就是去掉抽象类的abstract关键字并且补上大括号里的方法体内容)
如下图,创建一个Cat作为子类,并且在里面override父类的抽象方法:
然后在主class中实例化子类的对象来使用:
在UML里,抽象类也是父类所以也是Is-a关系,使用如图的空箭头表示。
抽象类的名称用斜体来书写,且在上方加《abstract》。