我有一個情況超類/子類方法
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