java - 如何在没有任何关联实例的情况下调用构造函数?

标签 java oop inheritance constructor super

请看下面的代码:

class A {
    private int b;
    A(){
        b=5;
    }
}

class B extends A {

}

class C {
    public static void main(String args[]){
        B b=new B();
    }
}

当我创建 B 的实例时,B 的默认构造函数调用 A 的构造函数,该构造函数为实例变量 b 赋值。 我的查询是因为实例变量与类的实例相关联,而我们还没有创建类 A 的任何实例,这个赋值(b=5)到底是什么意思?另外,当没有 A 的实例时,调用 A 的构造函数究竟意味着什么?

最佳答案

B extends A 表示 B 的一个实例也是 A 的一个实例,就像一个狗也是一种动物。它同时存在,所以 b=5 是完全正常的,因为 B 也是 A初始化 A 中的 b 字段。

关于java - 如何在没有任何关联实例的情况下调用构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29240417/

相关文章:

java - 如何按参数值拆分Spring MVC请求映射

java - Java 和 Python 之间的一年计算差异

java - JPA 实体是否应该为 hashcode() 实现返回一个常量?

java - 如何创建替换关键字密码

Javascript私有(private)变量和参数有什么区别?

java - Java 中的 NullPointerException 与继承

javascript - setinterval 和类之间奇怪的交互

java - 需要一些帮助来创建 Java 的 Triangle 类

java在泛型方法中使用this(继承)

c# - C# 中方法重载的不同行为