私有内部类调用

酷炫lv 2017-06-28 11:00:39
在一下代码中,使用了外部对象获取接口对象,再由接口调用f()方法,但是内部类定义为private,应该只有在OuterClass2中才可以调用,为什么在接口对象中可以调用??


//抽象类
interface OutInterface {
public void f();
}

// 外部类
class OuterClass2 {
// 内部类并且定义为私有,实现接口
private class InnerClass implements OutInterface {
InnerClass(String s) {
System.out.println(s);
}

// 重写
public void f() {
System.out.println("访问内部类中的f()方法");
}
}

public OutInterface doit() {
return new InnerClass("访问内部类构造方法");
}
}

// 主方法
public class InterfaceInner {
public static void main(String[] args) {
OuterClass2 out = new OuterClass2();
OutInterface outinter = out.doit();
outinter.f();
}
}
...全文
44 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧