抽象的概念
在继承关系中,如果父类中的方法不确定如果进行方法体的直线,那么这就是一个抽象方法。
例如:不明确是什么动物,所以动物吃东西的方法不能具体实现,所以就是抽象方法。
定义格式
public abstract class Animal{//抽象类
public abstract void eat();//没有方法体
}
备注:一个抽象类不一定要有抽象方法,但是抽象方法所在的类必须是抽象类,在class前加上abstract。
使用
1、不能直接创建(new)抽象类对象
2、必须用一个类来继承抽象父类
3、子类必须覆盖重写抽象父类中所有的抽象方法(就是子类去掉抽象方法的abstract关键字,加上方法体)
public abstract class Animal{//抽象类
public abstract void eat();//没有方法体
}
public class Cat extends Animal{
@Override//检测覆盖重写是否正确
public viod eat(){//去掉abstract,加上方法体,重写父类。
}
}
总结
1、抽象类不能直接创建对象
2、抽象类可以有构造方法 ,是供子类对象创建对象时,初始化父类成员使用的
3、抽象类不一定有抽象方法,但抽象方法所在的类必须是抽象类
4、抽象类的子类,必须重写父类中所有的抽象方法,如果不能全部重写,则子类也必须是一个抽象类