1、修改两处程序可以运行:
①、其他代码不变,修改Cat类如下:
class Cat extends Animal {
//增加无参构造器
public Cat(){}
//增加名字和年龄的构造器
public Cat(String name, int age){
super(name,age);
}
public void eat() {
System.out.println("猫吃鱼");
}
}
②、其他代码不变,修改TestDemo类为public访问权限:
public class TestDemo {
2、说明:
①、new关键字调用构造器可以创建对象,你原来的代码Animal a = new Cat();处没有报错是因为系统会默认提供一个无参构造器。到了Animal a1 = new Cat("猫",10);处报错是因为这个构造器找不到。你需要手动为它添加。
②、一个文件中最好只定义一个类,且为public访问权限,且文件的名称和类名相同。如果没有public访问权限的类,程序找不到入口
要多态吧
CAT类写SUPER()
在Cat类中写构造函数。