public class CA {
public static void main(String[] args) {
// TODO 自动生成方法存根
dog d1=new dog("宝宝","白色");
dog d2=new dog("贝贝","黑色");
System.out.println("小狗1的名字是"+d1.GetName()+"颜色是:"+d1.GetWool());
System.out.println("小狗2的名字是"+d2.GetName()+"颜色是:"+d2.GetWool());
}
}class bird {
private String name; // 存储鸟的名称 bird() {
}; bird(String name) {
this.name = name;
} public void walk() {
System.out.println("走路");
} public String GetName() {
return name;
} public void SetName(String name) {
this.name = name;
}
}class dog extends bird {
private String wool; dog() {
super();
} dog(String name, String wool) {
super(name);
this.wool = wool;
}
public String GetWool(){
return wool;
}
public void SetWool(String wool)
{
this.wool=wool;
}
public void WangWang(){
System.out.println("旺旺!!");
}
}
============================================================
============================================================
dog d1=new dog("宝宝","白色");
dog d2=new dog("贝贝","黑色");
这两段代码是什么意思!!请高手解释下....     
最好帮忙把整段代码解释下!!!十分感谢................

解决方案 »

  1.   

    public class CA {
    public static void main(String[] args) {
    // TODO 自动生成方法存根
    dog d1=new dog("宝宝","白色");      // 构造一个dog对象
    dog d2=new dog("贝贝","黑色");     // 构造一个dog对象
    System.out.println("小狗1的名字是"+d1.GetName()+"颜色是:"+d1.GetWool());
    System.out.println("小狗2的名字是"+d2.GetName()+"颜色是:"+d2.GetWool());
    }
    }class bird {
    private String name;   // 存储鸟的名称bird() {               //bird构造方法
    };bird(String name) {     //bird构造方法
    this.name = name;
    }public void walk() {     
    System.out.println("走路");
    }public String GetName() {
    return name;
    }public void SetName(String name) {
    this.name = name;
    }
    }class dog extends bird {    // dog继承bird
    private String wool;dog() {            //dog构造方法
    super();           // 调用bird无参构造方法
    }dog(String name, String wool) {     // 调用bird有参构造方法
    super(name);
    this.wool = wool;
    }
    public String GetWool(){
    return wool;
    }
    public void SetWool(String wool)
    {
    this.wool=wool;
    }
    public void WangWang(){
    System.out.println("旺旺!!");
    }
    }
      

  2.   

    调用dog构造方法,将参数"宝宝","白色" ; "贝贝","黑色" 传给dog构造方法。
    由于dog继承bird,且有super()方法,所以又把"宝宝" ; "贝贝"传给了bird的构造方法。
      

  3.   

    楼主从哪里搞的代码啊???一点逻辑都没有,狗竟然extends鸟。晕倒!
    dog d1=new dog("宝宝","白色");
    dog d2=new dog("贝贝","黑色");
    这是生成两个对象啊,从开始学的时候一定要注意规范,楼主
      

  4.   


    /**
     * 
     * @author 不再悲伤
     *给楼主的建议:请楼主买一本《Java编程思想》,上面有很多东西可以学得会,这样可以学的更深
     *楼主的构造函数我觉得不是很明白,并不要求什么都要别人叫你,你这习惯的改改,自己多看书,
     *读书是帮你自己学,
     */
    public class CA 
    {
    public static void main(String[] args) 
    {
    // TODO 自动生成方法存根
    /**这里的理解是d1和d2是一个引用变量,在声明之前并没有为变量开辟内存空间,
     * 只有当new出现时,才帮变量申请内存,dog(,)是你在前面写的一个构造函数,这样,
     * 避免要另外一个一个成员变量赋值
     */
    dog d1=new dog("宝宝","白色");
    dog d2=new dog("贝贝","黑色");
    System.out.println("小狗1的名字是"+d1.GetName()+"颜色是:"+d1.GetWool());
    System.out.println("小狗2的名字是"+d2.GetName()+"颜色是:"+d2.GetWool());
    }
    }class bird 
    {
    private String name; // 存储鸟的名称
    //注意,构造函数也可以这么写
    bird() {} bird(String name) 
    {
    this.name = name;
    } public void walk() 
    {
    System.out.println("走路");
    } public String GetName() 
    {
    return name;
    } public void SetName(String name) 
    {
    this.name = name;
    }
    }
    //dog继承bird方法
    class dog extends bird 
    {
    private String wool;

    dog() {super();} dog(String name, String wool) 
    {
    super(name);
    this.wool = wool;
    }
    public String GetWool()
    {
    return wool;
    }
    public void SetWool(String wool)
    {
    this.wool=wool;
    }
    public void WangWang()
    {
    System.out.println("旺旺!!");
    }
    }
      

  5.   


    很详细了..其实简单的说,就是有2条dog..两条小狗,一个叫"宝宝",颜色是"白色",另一个叫"贝贝",颜色是"黑色"..