一。为什么需要抽象类
class Animal{ String name; int age; public void eat(){ System.out.println("我要吃什么"); } }class Dog extends Animal{ public void eat(){ System.out.print("狗爱吃"); } }class Cat extends Animal{ public void eat(){ System.out.print("猫爱吃"); } }
上面的这段代码Animal类中的eat方法本来是可以没有方法体的。但是如果没有的话,那么编译器会报错。但是一定又要有这个方法。如果没有的话父类的引用调用不到子类的方法。那么解决办法就是使用抽象方法
abstract class Animal{ String name; int age; abstract public void eat();}class Dog extends Animal{ public void eat(){ System.out.print("狗爱吃"); } }class Cat extends Animal{ public void eat(){ System.out.print("猫爱吃"); } }
注意事项:
抽象方法只能在抽象类中定义
子类必须实现父类的抽象方法
编译器认为抽象类是不完整的,是不能被实例话的。