抽象类
抽象类与抽象方法的定义
抽象类:用关键字abstract修饰的类就是抽象类
抽象方法:用关键字abstract修饰的方法就是抽象方法
特点
抽象方法的特点:
- 抽象方法只有声明没有实现。
- 抽象方法写在抽象类中。
- 抽象方法只能加访问权限修饰符,不能有其他的修饰符,例如static、final,且访问权限不能是private
抽象类的特点:
- 抽象类中可以包含抽象方法,也可以包含非抽象方法
- 抽象类不能实例化对象,但是抽象类可以定义非静态成员,给子类对象使用
- 抽象类不能使用final修饰
抽象类的使用场景
- 前提:一个非抽象的子类,如果继承抽象类,必须把父类所有的抽象方法实现
- 使用场景:模拟一些简单规则的实现
- 弊端:由于java是单继承的语言,无法继承多个类,受到极大的约束。
代码演示:
abstract class Animal{
public abstract void eat();
}
class Cat extends Animal{
@Override
public void eat() {
System.out.println("猫吃鱼");
}
}
猫类实现动物类的eat方法,@Override放在方法上面,可以检测当前实现方法是否正确。