null 体重0 0 条腿
null 体重0 0 条腿
java编译运行结果怎么没有获取对象名称和其他属性值呢?

解决方案 »

  1.   

     interface Eatable{
     void haoToEat();
     String toString();}
    class Animal 
    { String name;
    int weight;
    int legs;
    String s=name+"体重"+weight+" "+legs+"条腿";
    Animal(String n,int w,int l){
    name=n;
    weight=w;
    legs=l;}
    public String toString(){
    return s;}
    }
    class Tiger extends Animal
    { String name;
      int weight;
      int legs;
    String s=name+"体重"+weight+" "+legs+"条腿";
       Tiger(String n,int w,int l){
    super(n,w,l);}
    public String toString(){
    return(this.s);
    }
    }
    class Chicken extends Animal implements Eatable
    { String name;
    int weight;
    int legs;
    String s=name+"体重"+weight+" "+legs+"条腿";
     Chicken(String n,int w,int l){
    super(n,w,l);}
    public String toString(){
    return(this.s);
    }
    public void haoToEat(){
    System.out.println("熏烤");}
    }
    class Elephant extends Animal
    { String name;
    int weight;
    int legs;
    String s=name+"体重"+weight+" "+legs+"条腿";
    Elephant(String n,int w,int l){
    super(n,w,l);}
    public String toString(){
    return(this.s);
    }
    }
     class Fruit 
    { String name;
    String color;
    String weidao;
    String shuxing=name+color+weidao;
    Fruit(String nm,String cl,String wd){
    name=nm;
    color=cl;
    weidao=wd;
    }
    public String toString(){return shuxing;}
    }
    class Apple extends Fruit implements Eatable
    { String name;
    String color;
    String weidao;
    String shuxing=name+color+weidao;
    Apple(String nm,String cl,String wd){
    super(nm,cl,wd);}
    public String toString(){
    return(this.shuxing);
    }
    public void haoToEat(){
    System.out.println("糖拌");
    }
    }
    class Orange extends Fruit implements Eatable
    { String name;
    String color;
    String weidao;
    String shuxing=name+color+weidao;
    Orange(String nm,String cl,String wd){
    super(nm,cl,wd);}
    public String toString(){
    return(this.shuxing); }
       public void haoToEat(){
    System.out.println("生吃");}
    }
    public class  Eating
    { public static void showObject(Object o)
     { System.out.println(o);
    if(o instanceof Eatable){
    ((Eatable)o).haoToEat();
    }
    }
    public static void main(String[] args) 
    {
    Tiger t=new Tiger("laohu",100,4);
    Eating.showObject(t);
    Chicken c=new Chicken("野鸡",4,2);
    Eating.showObject(c);
    }
    }
      

  2.   

    null 体重0 0 条腿
    null 体重0 0 条腿
    java编译运行结果怎么没有获取对象名称和其他属性值呢?
    源代码如下: interface Eatable{
     void haoToEat();
     String toString();}
    class Animal 
    { String name;
    int weight;
    int legs;
    String s=name+"体重"+weight+" "+legs+"条腿";
    Animal(String n,int w,int l){
    name=n;
    weight=w;
    legs=l;}
    public String toString(){
    return s;}
    }
    class Tiger extends Animal
    { String name;
      int weight;
      int legs;
    String s=name+"体重"+weight+" "+legs+"条腿";
       Tiger(String n,int w,int l){
    super(n,w,l);}
    public String toString(){
    return(this.s);
    }
    }
    class Chicken extends Animal implements Eatable
    { String name;
    int weight;
    int legs;
    String s=name+"体重"+weight+" "+legs+"条腿";
     Chicken(String n,int w,int l){
    super(n,w,l);}
    public String toString(){
    return(this.s);
    }
    public void haoToEat(){
    System.out.println("熏烤");}
    }
    class Elephant extends Animal
    { String name;
    int weight;
    int legs;
    String s=name+"体重"+weight+" "+legs+"条腿";
    Elephant(String n,int w,int l){
    super(n,w,l);}
    public String toString(){
    return(this.s);
    }
    }
     class Fruit 
    { String name;
    String color;
    String weidao;
    String shuxing=name+color+weidao;
    Fruit(String nm,String cl,String wd){
    name=nm;
    color=cl;
    weidao=wd;
    }
    public String toString(){return shuxing;}
    }
    class Apple extends Fruit implements Eatable
    { String name;
    String color;
    String weidao;
    String shuxing=name+color+weidao;
    Apple(String nm,String cl,String wd){
    super(nm,cl,wd);}
    public String toString(){
    return(this.shuxing);
    }
    public void haoToEat(){
    System.out.println("糖拌");
    }
    }
    class Orange extends Fruit implements Eatable
    { String name;
    String color;
    String weidao;
    String shuxing=name+color+weidao;
    Orange(String nm,String cl,String wd){
    super(nm,cl,wd);}
    public String toString(){
    return(this.shuxing); }
       public void haoToEat(){
    System.out.println("生吃");}
    }
    public class  Eating
    { public static void showObject(Object o)
     { System.out.println(o);
    if(o instanceof Eatable){
    ((Eatable)o).haoToEat();
    }
    }
    public static void main(String[] args) 
    {
    Tiger t=new Tiger("laohu",100,4);
    Eating.showObject(t);
    Chicken c=new Chicken("野鸡",4,2);
    Eating.showObject(c);
    }
    }
      

  3.   


       Tiger(String n,int w,int l){
         super(n,w,l);
       }
    你看你子类的构造方法的值都传递到父类中去了,,所以子类中的属性的值 依然为空啊,,,
    除非在实例化的时候采用多态,将实例的引用传递给父类。。这样子 就可以了额
    Animal a=new Tiger("laohu",100,4);
      

  4.   

    你有两点写错了
    1、下面这三个属性,你在父类已经定义了,你在子类就不要再定于了,都已经继承过来了
    String name;
    int weight;
    int legs;
    2、下面那句代码位置写得不对
    String s = name + "体重" + weight + " " + legs + "条腿";
    应该在构造方法里面写上s = name + "体重" + weight + " " + legs + "条腿";
    如下,一Tiger为例Tiger(String n, int w, int l) {
    super(n, w, l);
    s = name + "体重" + weight + " " + legs + "条腿";
    }