抽象类是一个特殊的父类,其内部允许编写抽象方法
public class AbstractDemo { public static void main(String[] args){ // 抽象类不能实例化 // Animal animal = new Animal(); // error: Animal is abstract; cannot be instantiated Cat cat = new Cat(); cat.eat(); // 猫吃鱼 cat.sleep(); // 非抽象方法,动物睡觉 Dog dog = new Dog(); dog.eat(); // 狗吃肉 cat.sleep(); // 非抽象方法,动物睡觉 } } abstract class Animal{ // 抽象类的构造方法,只是为了让子类通过super访问 public Animal(){ System.out.println("抽象类的构造方法"); } // 抽象方法,只有方法的声明,没有方法体 public abstract void eat(); // 普通方法(非抽象方法),既有方法的声明,也有方法体,可以让子类继承到继续使用 public void sleep(){ System.out.println("非抽象方法,动物睡觉"); } } class Cat extends Animal{ @Override public void eat() { System.out.println("猫吃鱼"); } } class Dog extends Animal{ @Override public void eat() { System.out.println("狗吃肉"); } }