class Father
{
//……
}
public class Son extends Father
{
public static void main(String[] args)
{
Son son=new Son();//这条语句会同时创建一个父类对象吗?如果创建了,怎么去引用它
}
}

解决方案 »

  1.   

    没有创建父类对象,如果真的这么样的话,创建一个子类的对象,那就创建一个父类的对象,也太耗费资源了。即使你Father f = new Son();这个对象也是子类对象。
      

  2.   

    不会。创建一个对象就是一个对象,只是会调用父类的构造函数而已。参考这里:http://blog.csdn.net/yidinghe/archive/2009/01/21/3839483.aspx
      

  3.   

    我的看法是,创建子类对象时父类对象也被创建,一个子类对象实例,包含一个完整的父类对象实例,但是这个父类对象的实例存在于子类对象实例的内存中,即Father f = son;时,f指向的就是这个父类对象实例,f能访问的内存也只能是这个父类对象实例的内存范围,不能超出这个范围而访问子类对象实例的扩展内存范围。
      

  4.   

    是的 创建子类的对象,一定会调用父类的构造函数.认同LS
    Quote:

    我的看法是,创建子类对象时父类对象也被创建,一个子类对象实例,包含一个完整的父类对象实例,但是这个父类对象的实例存在于子类对象实例的内存中,即Father f = son;时,f指向的就是这个父类对象实例,f能访问的内存也只能是这个父类对象实例的内存范围,不能超出这个范围而访问子类对象实例的扩展内存范围。 
    [/qupte]
    观点
      

  5.   

    没研究过JVM--但是有可能是父类和子类同时指向一个地址。父类在列表最前端,所以通过(父类)子类 这种方式可以转化成父类对象。对象只是一种思想,要是以内存占用的角度,那就是创建了父类对象。
      

  6.   

    不会创建父类的对象,不过子类继承了父类的方法和属性 (不包括私有)。调用父类方法可以用this 或者super 调用!
      

  7.   

    创建子类对象时一定会创建父类对象的,其实java与现实世界都是一一对应的,没有父哪来子的,只是创建的父类对象隐含的包含在子类对象中,这就对应着长江后浪推前浪即子胜过父的。兄弟也可以查查相关的书,以证明一下
      

  8.   

    new 出来什么就是什么对象
      

  9.   

    看看这个:
    public class TryExtends {
    public static void main(String[]args){
    Son s=new Son();
    System.out.print("子类外代码调用结果:"+s.str);
    s.getShow();

    }}
    class Father{
    public String str="该成员变量为public类型,能够被子类成功继承";

    }
    class Son extends Father{
    public void getShow(){
    System.out.print("\n子类内代码调用结果:"+this.str);
    }

    }
      

  10.   

    我也觉得 extends 只是子类包含了父类的一些特性。super.XXX 只是表明这个属性不是在通过子类定义的。但是父类的信息已经包含在子类中。如果一个子类继承的是一个抽象类,又怎么去创建父类的对象呢?所以,我觉得父类对象没有被创建。
      

  11.   

    用关键字super调父类的方法成员变量
      

  12.   

    是不会调用的,不过在创建子类的对象时会先默认调用父类的无参构造函数(如果不显示写无参的构造函数,会自动生成的),如果想显示调用父类的带参构造函数或方法,可以使用super这个关键字。
      

  13.   

    没有创建父类对象,
        只不过是创建了一个子类对象,但是这个对象同时也是指向父类的一个指针(C++中的说法,当然java中没有指针),这个对象具有父类的方法和属性
      

  14.   

    hinking in Java 第六章中说得很明白:
    创建衍生类的一个对象时,它在其中包含了基础类的一个“子对象”。这个子对象就象我们根据基础类本身创建了它的一个对象。从外部看,基础类的子对象已封装到衍生类的对象里了。