我有一个情况超类/子类方法
public class Animal
{
String noise;
public String makeNoise()
{
return noise;
}
}
这时会出现与噪声的具体定义一个子类。
public class Dog extends Animal{
String noise = "woof";
}
也
public class Cat extends Animal{
String noise = "meow";
}
我想要做的就是
Animal cat = new Cat();
cat.makeNoise(); // This will be 'meow'
和
Animal dog = new Dog();
dog.makeNoise(); // This will be 'woof'
基本上,我不想重复makeNoise()方法当我创造一个动物。但是,这不起作用。 (噪声是空字符串)
我可以使用一个静态对象像
static String NoiseDog = "woof"
static String NoiseCat = "meow"
但再我必须写对每只动物的makeNoise()方法。有没有更好的方法来设计这个?
设置在每个子类的构造函数的超类的噪音成员。你只需要在super中实现makeNoise()。 – bhspencer