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

时间:2011-04-12 12:06:48

标签: 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();

它是否创建了Box和Rectangle对象,矩形不能直接访问,但只能通过Box对象访问。换句话说,它是否在内存中创建了两个对象?

1 个答案:

答案 0 :(得分:4)

  

换句话说,它是否在内存中创建了两个对象?

不,它会创建一个对象。这个单个对象代表Box(由于这是Rectangle的子类型,因此同一个对象也代表Rectangle

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