我们每一个图形,都有一个计算面积功能,那么我们就将这个共性抽取出来,形成一个父类,但是由于每一个图形的计算面积的方式不同,那么我们抽取出来的方法,就不能确定具体实现。
所以说:方法体说不清、道不明,这种说不清道不明具体实现的方法被称为抽象方法,所以抽象方法,没有方法体,没有大括号
注意:
抽取共性方法的时候,如果这个方法说不清道不明,不能确定具体实现,那么这个方法一般定义为抽象类
抽象方法所在的类一定是抽象类
抽象类中不一定非得有抽象方法
抽象类中除了可以有抽象发放,还可以有构造,get set ,成员变量,普通方法
抽象类
抽象类的定义: abstrace class 类名
抽象方法的定义: 修饰符 abstract 返回值类型 方法名(参数)
使用:
1.定义子类,继承抽象类
2.重写父类中的抽象方法(要重写掉父类中所有的抽象方法)
3.创建子类对象,调用重写的方法(抽象类不能new对象)
注意:
1.抽象方法所在的类一定是抽象类
2.抽象类中不一定非得有抽象方法
3。抽象类中除了有抽象方法,还可以有其他普通类的成员
注意
1.抽象类不能创建对象,如果创建对象编译无法通过而报错。只能创建其非抽象子类的对象
2.可以有构造方法,是提供抽象的方法,而抽象方法没有具体的方法体,没有意义
2.不一定包含抽象方法,但是抽象方法必须有抽象类。
4.抽象类的子类必须重写抽象父类中所有的抽象方法。否则,编译过程无法通过而报错