给出代码片段:
class A {
public String foo() {
}
}
class B extends A {
public String foo() {
super.foo();
}
}
当我们调用时会发生什么:
B b = new B();
b.foo();
A
对象是内部创建的,只是为了调用A.foo()
吗?
最佳答案
否。您不会创建任何其他对象。
当您扩展一个类并实例化子类时,您已经创建了一个对象,该对象是父类(super class)型实例加上您的扩展内容。
尽管您实际上并未创建两个单独的对象,但您创建了一个同时具有这两个对象的对象(B 是 A++
),这也称为多态性(您有一个可以执行的对象)父类(super class)型方法)。
关于java - 调用父类(super class)型方法会创建一个新的父类(super class)型对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29195859/