标题:大一新生CS专业 关于子类与继承 求指点
只看楼主
Poppy辉
Rank: 1
来 自:云南曲靖
等 级:新手上路
帖 子:33
专家分:4
注 册:2016-11-5
结帖率:66.67%
已结贴  问题点数:18 回复次数:2 
大一新生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
搜索更多相关主题的帖子: 大一新生 画眉 专业 
2016-11-08 19:22
枫xby
Rank: 5Rank: 5
等 级:职业侠客
威 望:8
帖 子:82
专家分:371
注 册:2014-10-19
得分:18 
我觉得 Bird类中的构造函数这样定义(我觉得最大速度就一个变量好了 int maxspe)
public Bird(String name,String brand,int maxspe){
    this.name = name;
    this.brand = brand;
    this.maxspe = maxspe;

}

你在HawkBird类中定义一个有参构造函数
public HawkBird(String name,String brand,int maxspe,int weight){
    super.(name,brand,maxspe);
    this.weight = weight;
}
2016-11-10 10:22
qidiao
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-1-16
得分:0 
... 字符串比较要用equals
2017-01-16 19:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-470907-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.556948 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved