我正在上课,应该用老麦克唐纳的歌来证明继承;这里有一个动物界面,一个实现每个动物对象的农场类......你明白了。我有两个问题。
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()返回的概率相等。我不知道该怎么做。我考虑过在构造函数中添加一个布尔值,但是这不会起作用,因为farm类只能创建一个新的Chick();我意识到你不仅要给我答案,而且我甚至不知道从哪里开始。
2)另一个问题是我应该创建一个NamedCow类,正如你可能猜到的那样,给了牛一个名字。
我不能只将一个getName方法添加到cow类中,namedCow必须是一个新类
public class NamedCow extends Cow {
private String myName;
NamedCow(String name)
{
myName = name;
}
public String getName()
{
return myName;
}
请您帮我根据需要为Chick and Cow课程编写正确的代码?我必须在两个课程中做出哪些改变?
答案 0 :(得分:0)
对于Chick问题,我会使用随机方法,如: http://docs.oracle.com/javase/7/docs/api/java/util/Random.html
使用nextBoolean()并将其结果传递给getSound(boolean isChild)方法
然后检查getSound()方法
if (isChild)
return "cheep";
else
return "cluck";
如果你想每次都有鸡的随机反应。只需将随机生成器添加到方法
即可String getSound(){
Random r = new Random();
if (r.nextBoolean)
return "cheep";
else
return "cluck";
}
关于奶牛问题,我会创建一个继承动物然后编写方法的牛类: 例如:
nameCow(String name){
this.cowName=name;
}