当父类的一些方法不能确定时,可以用abstract关键字来修饰改方法,这个方法就是抽象方法,用abstract来修饰该类就是抽象类。
- 抽象类不能被实例化 new
- 抽象类不一定要包含abstract方法。也就是说,抽象类可以没有abstract。
- 一旦包含了abstract方法,则这个类必须声明为抽象类
- abstract只能修饰类和方法,不能修饰属性和其他的。
注意:
如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为abstracr类
abstract class Animal{
private String name;
public Animal(String name) {
this.name = name;
}
public abstract void eat(); // 抽象方法不能有实体
}
class Cat extends Animal{
public Cat(String name) {
super(name);
}
@Override
public void eat() {
}
}
- 抽象方法不能使用private、final和static来修饰,因为这些关键字都是和重写相违背的。