Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 子类对象的创建是否也会创建其超类的对象?_Java_Class_Memory_Object - Fatal编程技术网

Java 子类对象的创建是否也会创建其超类的对象?

Java 子类对象的创建是否也会创建其超类的对象?,java,class,memory,object,Java,Class,Memory,Object,以下是我的意思的一个例子: public class Rectangle { private int length; private int breadth; . . } public class Box extends Rectangle { private int height; . . } 当您: Box b = new Box(); 它是否创建了一个长方体和一个矩形对象,而长方体不能直接访问,但只能通过长方体对象访问。换句话说

以下是我的意思的一个例子:

public class Rectangle
{
    private int length;
    private int breadth;
    .
    .
}

public class Box extends Rectangle
{
    private int height;
    .
    .
}
当您:

Box b = new Box();
它是否创建了一个长方体和一个矩形对象,而长方体不能直接访问,但只能通过长方体对象访问。换句话说,它会在内存中创建两个对象吗

换句话说,它会在内存中创建两个对象吗?

不,它创建一个对象。此单个对象表示一个
(由于这是
矩形
的子类型,因此此同一对象也表示一个
矩形

继承只是确保
对象的接口是
矩形
接口的扩展

换句话说,它会在内存中创建两个对象吗?

不,它创建一个对象。此单个对象表示一个
(由于这是
矩形
的子类型,因此此同一对象也表示一个
矩形


继承只是确保
Box
对象的接口是
Rectangle
接口的扩展。

好的,但我不明白的是,我被告知Box不继承Rectangle的私有实例变量,但它可以通过公共方法访问它们。在这种情况下,内存中不一定有一个矩形对象吗//Confused@Zac布莱克:你被告知是错误的——Box确实继承了这些,它只是不能直接访问它们。@Zack Blazic,好吧,这只是措辞的问题。您也可以说它继承了它们,但无法访问它们。@Zac-related:好的,但我不明白的是,有人告诉我Box不继承矩形的私有实例变量,但它可以通过公共方法访问它们。在这种情况下,内存中不一定有一个矩形对象吗//Confused@Zac布莱克:你被告知是错误的——Box确实继承了这些,它只是不能直接访问它们。@Zack Blazic,好吧,这只是措辞的问题。您也可以说它继承了它们,但无法访问它们。@Zac-related: