package java111222; public class Animal{ public String name;//名字 protected int age;//年龄 public Animal() {} public Animal(String name,int age) { this.name=name; this.age=age; } public void eat() { System.out.println("animal:"+name+"eating"); } public String getInfo() { return "我是"+name+",今年"+age+"岁了."; } class Cat extends Animal{ public String breed; public Cat() { } public Cat(String name,int age,String breed) { super(name,age); this.breed = breed; } public void eat() { System.out.println(this.breed+super.name+"正在吃鱼"); } public void eat(int num) { System.out.println(this.breed+super.name+"吃了"+num+"条鱼"); } } } public class CatTest { public static void main(String[] args) { Cat cat1 = new Cat("kate",2,"蓝猫"); // TODO 自动生成的方法存根 cat1.eat(); cat1.eat(2); } }
时间: 2023-05-30 22:04:45 浏览: 198
这段代码有几个问题:
1. Animal类和Cat类的定义应该在两个不同的文件中,而不是写在同一个文件中。
2. Animal类中的eat()方法的输出语句中,应该用加号(+)连接字符串和变量,而不是直接用空格连接。
3. Cat类中的eat()方法的输出语句中,应该用加号(+)连接字符串和变量,而不是直接用空格连接。另外,应该在super后面加上".",表示调用父类的属性。
4. CatTest类中的main()方法中,应该在Cat类的定义之前导入Animal类。
修改后的代码如下:
Animal类:
package java111222;
public class Animal {
public String name;//名字
protected int age;//年龄
public Animal() {}
public Animal(String name,int age) {
this.name=name;
this.age=age;
}
public void eat() {
System.out.println("animal:" + name + " eating");
}
public String getInfo() {
return "我是" + name + ",今年" + age + "岁了.";
}
}
Cat类:
package java111222;
public class Cat extends Animal{
public String breed;
public Cat() { }
public Cat(String name,int age,String breed) {
super(name,age);
this.breed = breed;
}
public void eat() {
System.out.println(this.breed + " " + super.name + "正在吃鱼");
}
public void eat(int num) {
System.out.println(this.breed + " " + super.name + "吃了" + num + "条鱼");
}
}
CatTest类:
package java111222;
public class CatTest {
public static void main(String[] args) {
Cat cat1 = new Cat("kate",2,"蓝猫");
cat1.eat();
cat1.eat(2);
}
}
阅读全文