最近在练习的时候添加了一个动物类父类
package com.拓展;
public class Animal {
private String name;
private int age;
private String eat;
private boolean body;
public Animal() {
}
public Animal(String name, int age, String eat, boolean body) {
this.name = name;
this.age = age;
this.eat = eat;
this.body = body;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getEat() {
return eat;
}
public void setEat(String eat) {
this.eat = eat;
}
public boolean isBody() {
return body;
}
public void setBody(boolean body) {
this.body = body;
}
@Override
public String toString() {
return "这个动物的名字叫做" + name +
", 今年" + age +
"岁, 分属于" + eat +
"动物, 身体" + body1(body)+","
;
}
public String body1(boolean body){
if (body) {
return ("健康");
}
return ("不健康");
}
}
然后再创建了一个他的子类,但是子类会有一个新的功能,我想把这个功能添加到toString()中,如下:
package com.拓展;
public class Bird extends Animal{
private String color;
public Bird(){}
public Bird(String name, int age, String eat, boolean body, String color) {
super(name, age, eat, body);
this.color = color;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
@Override
public String toString() {
return " 颜色是"+color;
}
}
然后我发现在测试类中无法通过调用toString方法来达到使用子类和父类中的toString(),我就使用了一个笨方法,但是我感觉这种代码太糟糕了,不知道有没有什么其他的方法
package com.拓展;
public class test2 {
public static void main(String[] args) {
Animal animal= new Animal("鹦鹉",2,"",true);
Bird bird1= new Bird();
bird1.setColor("黄白相间");
System.out.print(animal.toString());
System.out.println(bird1.toString());
}
}
求大佬指点