首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java,继承-父级中的私有字段通过子级中的公共方法进行访问

java,继承-父级中的私有字段通过子级中的公共方法进行访问
EN

Stack Overflow用户
提问于 2014-04-17 16:56:43
回答 3查看 132关注 0票数 1

所以,一个朋友给我发来了这段代码,并说它已经成功编译并返回42。但是,麻烦的是父类中的方法“return”42是私有的,而被调用的方法是在子类中,它是公共的。那么,有没有人能告诉我这是为什么以及如何工作的呢?

代码语言:javascript
运行
复制
static class A {
    private int f() {
        return 42;
    }
}

static class B extends A {
    public int f2() {
        return super.f();
    }
}

public static void main(String[] args) {
    System.out.print(new B().f2());

}

它返回42。

我试着摆脱静电,然后

代码语言:javascript
运行
复制
class A {
    private int f() {
        return 42;
    }
}

class B extends A {
    public int f2() {
        return super.f();
    }
}

public static void main(String[] args) {
    Main m= new Main();
    B b= m.new B();
    System.out.print(b.f2());

}

它仍然返回42。

EN

Stack Overflow用户

发布于 2014-04-17 16:59:39

因为这两个类(AB)都嵌套在Main中,所以它们可以访问private int f()方法。

如果您在顶级类中提取AB的源代码,这种情况就不会发生,并且您将无法编译。

票数 6
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23128728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档