【发布时间】:2014-03-18 20:38:33
【问题描述】:
我正在上一堂课,该课应该使用歌曲 Old MacDonald 来演示继承;有一个动物接口,一个实现每个动物对象的农场类..你明白了。我有两个问题。
1) 动物有类型和声音,例如小鸡是
class Chick implements Animal {
private String myType;
private String mySound;
private String mySound2;
int flag =0;
public Chick(String type, String sound)
{
myType = type;
mySound = sound;
}
public Chick(String type, String sound,String sound2)
{
myType = type;
mySound = sound;
mySound2=sound2;
}
public Chick()
{
myType = "unknown";
mySound = "unknown";
}
public String getSound()
{
return mySound;
}
public String getType()
{
return myType;
}
}
我应该创建第二个构造函数,它带有一个标志,说明小鸡是幼稚的并返回声音“cheep”还是成人并返回“cluck”,这样 getSound() 返回的概率相同。我不知道该怎么做。我考虑在构造函数中添加一个布尔值,但这不起作用,因为农场类只能创建一个 new Chick();我知道你不只是要给我一个答案,但我什至不知道从哪里开始。
2) 另一个问题是我应该创建一个 NamedCow 类,正如您可能猜到的那样,它给奶牛一个名字。
我不能只在牛类中添加一个 getName 方法,namedCow 必须是一个新类
public class NamedCow extends Cow {
private String myName;
NamedCow(String name)
{
myName = name;
}
public String getName()
{
return myName;
}
您能帮我按需要为 Chick and Cow 类编写正确的代码吗?我必须在这两个课程中做出哪些改变?
【问题讨论】:
-
提示: 类可以有多个构造函数。
-
难道不是
Cow和Animal,所以一切最终都继承自Animal?抽象的呢?我会让一切都来自动物。如果您不想为 Animal 命名,请不要覆盖getName。例如,在超类中,将其设为空白。 -
NamedCow有什么问题?除了您的构造函数没有设置type和sound之外,它看起来还不错 -
@ElliottFrisch 我以为官方名称是
setters and getters -
@user3114849 正如 Robert Harvey 所说,类可以有多个构造函数。因此,无论小鸡是否年轻,使用(如您所说!)布尔参数创建另一个构造函数。根据该值,您将初始化声音值。
标签: java