大一新生CS专业 关于子类与继承 求指点
有点靠不懂这节内容老师布置了一道作业 -编写Bird类,具有以下成员:鸟的学名(变量):如,画眉,麻雀
种属(变量): 水禽 or 飞禽 or 猛禽(三种取值之一)
最大飞行速度(变量):
构造函数(带参数)
-Speak函数( 模仿输出鸟的叫声 , 设为“gugu~~”声音)
通过重载Bird,产生一个新类HawkBird, 增加以下成员:
体重(变量)
捕食函数: boolean prey( Bird obj)
- 在prey函数中, 捕食是否能够成功(函数返回值为true)由如下条件确定。
如果: weight>20, 则 0.9* 自身飞行速度> 参数obj( 鸟)的最大飞行速度,则能够成功捕食。
如果: weight<=20, 则 自身飞行速度>参数obj的最大飞行速度,则能够成功捕食。
-重写speak()函数,发出的声音为”owow~~”
-在main函数中,创建Hawkbird对象 hawk和一个Bird对象bird。
让它们输出各自的叫声(屏幕输出)
然后判断Hawkbird能否捕食成功?
附上我自己写的程序 求指点
在Bird类里:public class Bird {
String name;
String brand;
int maxspe1,maxspe2;
Bird (int a,int b)
{
if ( name=="布谷")
maxspe1 = a;
if( name=="老鹰")
maxspe2=b;
}
void speak()
{
if( name=="老鹰")
System.out.println("gaga~");
if( name=="布谷")
System.out.println("gugu~");
}
}
在HawkBird类里:
public class HawkBird extends Bird
{
int weight;
boolean prey(Bird obj)
{
if( name=="老鹰" && weight>20 && 0.9*maxspe2>obj.maxspe1 )
System.out.println("老鹰能捕食成功");
else if( name=="老鹰" && weight<=20 && maxspe2>obj.maxspe1 )
System.out.println("老鹰能捕食成功");
else
System.out.println("老鹰不能捕食成功");
return true;
}
void speak()
{
System.out.println("wow~");
}
}
在主类APP里:
public class app {
public static void main(String[] args) {
Bird bird = new Bird(23,86);
bird.speak();
HawkBird hawk = new HawkBird();
hawk.speak();
}
}
其中在HawkBird中还有错误mplicit super constructor Bird() is undefined for default constructor. Must define an explicit constructor