抽象类的概述:一个不具体的功能称为抽象的功能,而一个类中如果有抽象的功能,该类必须是抽象类。
在java中,一个没有方法体的方法应该被定义为抽象类,而类中如果有抽象方法,该类必须定义为抽象类
抽象类的特点:抽象类和抽象方法必须用abstract关键字;抽象类中不一定有抽象方法,但是有抽象方法的类必须是抽象类;抽象类不能实例化即不能创建对象(因为它不是具体的);抽象类有构造方法,但是不能实例化,所以构造方法用于子类访问父类数据的初始化;
抽象类的子类
abstract class Animal {
public Animal(){};
public abstract void eat(){};//这条语句会报错,空方法体
public abstract void eat();
}
//子类是抽象类
abstract class Cat extends Animal {
}
//子类是具体类,重写父类抽象方法
class Dog extends Animal {
public void eat() {
System.out.println(" ");
}
}
//抽象类的实例化其实是靠具体的子类实现的,多态的方式。
//Animal a=new Dog();