回顾
what
面向对象特征:封装、继承和多态
在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多
个接口。
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用
来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象
类。
抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的
访问方式和普通类一样。
由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常
在设计阶段决定要不要设计抽象类。
父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。
why
问:一般类里定义的方法,子类也可以覆盖,没必要定义成抽象的啊?
答:其实不是说抽象类有什么用,一般类确实也能满足应用,但是现实中确实有些父类中的方
法确实没有必要写,因为各个子类中的这个方法肯定会有不同,所以没有必要在父类里写。
抽象方法
用abstract 定义的方法称之为是抽象方法,抽象方法没有方法体,在小括号后面用“分号”结尾。
通过具体的案例来讲解抽象类的抽象方法。
案例:做加减法运算器
以上两个类存在大量的代码,这时就可以向上抽取出一个父类Cal类,让所有的加减乘除子类继承于Cal类
由于getResult方法具体的实现不明确,不完整,所以可以定义为抽象方法,没有方法体,小括号后直接用分号结尾。
public abstract int getResult();
由abstract修饰
抽象方法必须放在抽象类中
只有方法的定义,没有具体的实现(连大括号都没有)
父类的抽象方法必须由子类重写实现。
抽象类
继承抽象类
抽象类不能实例化,一个类继承了抽象类后必须重写父类的抽象方法,不同的子类可以有不同
的实现。
总结:
抽象类的意义
案列:根据周长计算圆形和正方形的面积
注:正方形的面积公式为:0.0625*c*c。圆形的面积公式为:0.0796*c*c,其中,c表示图形的周长。
欢迎👏点赞+关注,笔芯❤️

标签: