Java 继承 - 父级和子级的成员

标签 java oop

public class Parent {
       int num = 10;

       public void method(){
           System.out.println("Parent method");
       }
}

public class Child extends Parent {
    int num = 20;  // Why this declaration is allowed ?
     public void method(){
       System.out.println("Child method");
     }

    public static void main(String[] args) {

        Parent f = new Child();
        Child f2 = new Child();
        System.out.println(f.num);
        System.out.println(f2.num);
    }

}

为什么子类中允许声明同名变量。 根据继承, child 应该继承 parent 的属性(property)。 请解释一下。

最佳答案

Why this declaration is allowed ?

因为该语言允许覆盖方法和隐藏成员 - 在您的情况下,您隐藏 parent num 成员。

子级的 num 值为 20,如果您需要访问父级的 num 值,则必须执行以下操作:

int parentNum = super.num;

关于Java 继承 - 父级和子级的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31518166/

相关文章:

java - 通过 Android App 查询我的 AWS dynamoDB 以查找具有特定哈希值的条目数

java - 如何在签名中没有 RedirectAttributes 的方法中访问 RedirectAttributes?

java - 如何使用 Maven 插件的补丁版本?

java - tomcat7 的当前服务器状态信息

java - 您是否从任何可以实例化的类中提取接口(interface)?

php - Zend框架查询,添加到字符串

java - 为什么可以在没有实例的情况下调用方法?

java - 如何发现给定接口(interface)背后的 NAT 类型

c# - 重构以避免重复代码

python - 抽象基类中的断言?