在继承中,当为子类创建对象时,是否还为其超类创建了一个对象?

时间:2014-03-21 10:30:02

标签: java inheritance garbage-collection wrapper

  1. 在继承中,为子类创建对象时,是否还为其超类创建了一个对象?
    我发现上述问题的答案是肯定的,它已经创建了。我对吗?

  2. 基于它是正确的假设,我解决了这个问题,我发现答案是4。 我是对的吗?

  3. 长期是原始类型还是包装类?

  4. 问题:到达最后一个大括号时,有多少个对象符合垃圾回收的条件?

    interface Animal {
       void makeNoise();
     }
    
    class Horse implements Animal {
    Long weight = 1200L;//here is Long a primitive variable or a wrapper class??
                        //If it is a wrapper class object, I think the answer to the   
                        // question would be 6  
    public void makeNoise() {
    System.out.println("whinny");
    }
    }
    
    public class Icelandic extends Horse {
    
    public void makeNoise() {
    System.out.println("vinny");
    }
    
    public static void main(String[] args) {
    Icelandic i1 = new Icelandic();
    Icelandic i2 = new Icelandic();
    Icelandic i3 = new Icelandic();
    
    i3 = i1; i1 = i2; i2 = null; i3 = i1;
    }
    }
    

2 个答案:

答案 0 :(得分:5)

  

在继承中,为子类创建对象时,是一个对象   还为其超类创建?我找到了上面的答案   问题是肯定的,它的创造。我是对的吗?

不,在创建子类对象时,它不会创建超类对象。子类对象将通过继承Super Class来拥有超类功能主义者。创建子类对象时,只会创建一个对象

  

是一个原始类型还是包装类?

long是原始数据类型,Long是对应的Wrapper类。

  

问题:到达最后一个大括号时,有多少个对象符合条件   垃圾收集?

是的,将有6个对象,包括3个Long个对象

答案 1 :(得分:3)

  1. 它创建一个单独的对象,它既在创建的特定类中,也在任何/所有超类中。很多Fido都是狗,哺乳动物和动物。
  2. Long是一个包装纸; long是一个原始的(注意第一个字母的情况)。
  3. 你创造了3个冰岛人,每个都有一个Long:6个物体。由于你已经完成了该计划,我希望所有6人都有资格领取。