2 回答
TA贡献1818条经验 获得超3个赞
不要将名称变量设为静态。这意味着它属于类而不是Animal对象,这意味着类中永远只有一个Animal.name。你的Cat.sound,Cat.favoriteToy变量也是静态的,这意味着所有的猫都会有相同的声音和最喜欢的玩具(我想这是可以接受的,但不要在构造函数中分配它)。
Setter 不需要有返回值(你只是在改变一些变量)。例如:
public void setName(String newName) {
this.name = newName;
}
Getter 不需要任何参数。您已经知道要返回什么,不需要参数。例如:
public String getSound() {
return this.sound;
}
另外,你Animals应该是Animal,因为这个类代表一个单一的动物。
如果您创建一个Cat对象,它也会自动创建Animal(继承它),因此无需像在 main 方法中那样创建两者
Cat myCat = new Cat("Purr","meow","ball"); //create cat
System.out.println(myCat.getName());
变量是静态的,所以现在所有的猫都会有这个名字、声音和最喜欢的玩具......
TA贡献1802条经验 获得超6个赞
也许你试图做类似的事情
1)
public class Animal {
protected String name;
public String animMove() {
return new String(this.name + " likes to walk");
}
}
2)
public class Cat extends Animal {
public String sound;
public String favToy;
public Cat(String name, String sound, String favToy) {
super(name);
this.sound = sound;
this.favToy = favToy;
}
public String getName() {
return super.name;
}
public String getSound() {
return this.sound;
}
public String getToy() {
return this.favToy;
}
}
3)
public class test{
public static void main(String[] args) {
Animal anim = new Cat("Cat", "moew", "Yarn ball");
System.out.println(anim.getName() + " Likes to " + anim.getSound(sound) + ", its favourite toy is a " + anim.getToy(favToy) + " " + anim.animMove());
}
}
添加回答
举报