java - 调用父类(super class)型方法会创建一个新的父类(super class)型对象吗?

标签 java oop

给出代码片段:

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/

相关文章:

java - 如何使用 "equals"为泛型实现 "instanceof"方法?

JavaScript - 如何将新实例设置为动态创建的参数?

java - Java VM 与 .NET CLR 的性能基准测试

Java 通过 for 循环更新 jLabel.setText

oop - 使用 DDD 建模时间表

c++ - 维护当前选定的对象是否很好地使用状态模式?

javascript - 使用 OOP 访问 Javascript 中定义的变量

java - java中mysql中的数据源多个数据库

java - Java 中的 Scala 调用

JavaFX:在折线图的节点上设置单击监听器