Java 内部类和子类之间的创建差异
我注意到,要创建内部类,我们需要外部类的实例。但是为了创建一个子类,我们还需要父类来创建实例Java 内部类和子类之间的创建差异,java,inheritance,nested,subclass,inner-classes,Java,Inheritance,Nested,Subclass,Inner Classes,我注意到,要创建内部类,我们需要外部类的实例。但是为了创建一个子类,我们还需要父类来创建实例 如果有的话,它们之间有什么区别?严格地说是创造,而不是他们如何工作。我可以想象一下:有一个父对象,里面是子对象对象,就像内部类对象在堆中的外部类对象一样?我是否接近这一点?也许可以用一幅图片/一个类比来表示这两种关系: i、 e: janeDoe子类实例只是一个对象,但它在一个实例中是两种类型 内部类实例johnDoe,与外部类实例janeDoe不同。他们之间有着非常密切的联系,他们知道如何相互利用
如果有的话,它们之间有什么区别?严格地说是创造,而不是他们如何工作。我可以想象一下:有一个父对象,里面是子对象对象,就像内部类对象在堆中的外部类对象一样?我是否接近这一点?也许可以用一幅图片/一个类比来表示这两种关系: i、 e:
子类实例只是一个对象,但它在一个实例中是两种类型janeDoe
- 内部类实例
,与外部类实例johnDoe
不同。他们之间有着非常密切的联系,他们知道如何相互利用janeDoe
new-Mother()
呢?@Stefan我只提到了我们在创建对象时显式进行的构造函数调用(即,我忽略了类本身进行的所有其他构造函数调用,无论是否显式)。可以把它看作是实例化(不管有多少本地或继承的构造函数运行,都会创建一个实例)。对不起,我不太擅长这一点:)但如果你画了一幅完整的图,那么在创建女儿时就必须有母亲对象?@Stefan没必要感到抱歉。我知道这张照片有可能显示出一些模棱两可的地方。思考左面的最好方式是,女儿也会因为是女人而接受母亲的所有基因和行为,但女儿可以作为一个人独立存在。但是胎儿不能独立存在(需要母亲的实例),而且胎儿可以拥有母亲的基因/行为这一事实在这种情况下是无关紧要的——这就是为什么我把它命名为johnDoe
,一个男性:-)。“我会把母亲/女儿换成更精确的东西。@Stefan我认为女人/母亲的类比比母亲/女儿更准确。我已经更新了图片。