抽象类
动物 动物
Animal a = new Animal();
1. 抽象类
1.1 抽象类概述
1. 抽象类
1.1 抽象类概述
在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类
1. 抽象类
1.2 抽象类的特点
抽象类和抽象方法必须使用 abstract 关键字修饰 public abstract class 类名 {}
public abstract void eat();
抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
抽象类不能实例化
抽象类如何实例化呢?参照多态的方式,通过子类对象实例化,这叫抽象类多态
抽象类的子类
要么重写抽象类中的所有抽象方法 要么是抽象类
1. 抽象类
1.3 抽象类的成员特点
成员变量 可以是变量 也可以是常量
构造方法
有构造方法,但是不能实例化
那么,构造方法的作用是什么呢?用于子类访问父类数据的初始化
成员方法
可以有抽象方法:限定子类必须完成某些动作 也可以有非抽象方法:提高代码复用性
1. 抽象类
案例:猫和狗
需求:请采用抽象类的思想实现猫和狗的案例,并在测试类中进行测试 思路:
①定义动物类(Animal) 成员变量:姓名,年龄 构造方法:无参,带参
成员方法:get/set方法,吃饭();
②定义猫类(Cat),继承动物类 构造方法:无参,带参 成员方法:重写吃饭(){…}
③定义狗类(Dog),继承动物类 构造方法:无参,带参 成员方法:重写吃饭(){…}
④定义测试类(AnimalDemo),写代码测试