因为父类里面的计算面积方法因为不同形状不同计算方法。所以父类里面不知道怎么写,
如果父类当中方法不确定如何进行方法体的实现,那么这就应该是一个抽象方法
/** * 抽象方法:加上abstract关键字,然后去掉大括号,直接分号结束 * 抽象类:抽象方法所在类,必须抽象类才行,再class之前写上abstract接口 * * 如何使用抽象类和抽象方法 * 1,不能直接创建new抽象类对象 * 2,必须用一个子类来继承抽象父类 * 3,子类必须覆盖重写抽象父类当中的所有抽象方法 * * 覆盖重写(实现),去掉抽象方法的abstract关键字。 */ public abstract class Animal { public Animal() { System.out.println("animal 构造方法执行"); } // public void eat(){} public abstract void eat(); }
public class Cat extends Animal{ public Cat() { System.out.println("Cat 构造方法执行!"); } public void eat() { System.out.println("猫吃鱼"); } }
test
public class test { public static void main(String[] args) { // Animal animal = new Animal() {}错误 Cat cat = new Cat(); cat.eat(); } } /* animal 构造方法执行 Cat 构造方法执行! 猫吃鱼 */
抽象类的注意事项:
/** * 抽象类的注意事项: *1抽象类不能创建对象,只能创建其非抽象子类的对象 * 2抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的 * 3抽象类中,不一定包含抽象方法,但是有抽象方法的类必定时抽象类 * 4抽象类的子类,必须重写抽象父类中的所有抽象方法。 */
原文:https://www.cnblogs.com/java-quan/p/13709426.html