高手快进来!!!

yulei0707 2003-10-18 10:23:09
class A{
private interface D{
public void f();
}
public class DImp2 implements D{
public viod f(){}
}
public D getD(){return new DImp2();}
public D dRef;
public void receiceD(D d){
dRef=d;
dRef.f();
}
}

public class NestingInterface{
public static void main(String[] args){
A a=new A();
A a2=new A();
a2.receiveD(a.getD());
}
}

private interfac D 被实现为public class DImp2.但A.DImp2也不能为外界所用.你无法对外界说它实现出一个private interface.因为所谓将private interface
实现出来只是一种方法,用以强迫"定义于该interface中的函数"不要被加上任何型别信息.这也就是说,不用许任何向上转型发生.

我看不懂这一段话.能不能帮我解释一下.
...全文
30 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yulei0707 2003-10-24
  • 打赏
  • 举报
回复
up
flyshp 2003-10-21
  • 打赏
  • 举报
回复
java 类的继承都是找父的!!
tymx 2003-10-21
  • 打赏
  • 举报
回复
因为interface D被定义为私有的,所以虽然你用一个public类去实现它,但在类A的外部该接口依然是无法被访问的.
whyxx 2003-10-21
  • 打赏
  • 举报
回复
因为如果实例化一个类,首先会先去找其父类或接口,如果父类或接口为private,只他所有的子类均不能为外界所用.
honkyjiang 2003-10-21
  • 打赏
  • 举报
回复
private interfac D 被实现为public class DImp2.但A.DImp2也不能为外界所用.
因为interface D 是private的. 不可能有D d = A.DImp2;
用以强迫"定义于该interface中的函数" 要A.DImp2实现interface D 罢了
fast_time 2003-10-21
  • 打赏
  • 举报
回复
因为接口是私有的,外面看不到,所以才这么说
yulei0707 2003-10-21
  • 打赏
  • 举报
回复
up
yulei0707 2003-10-18
  • 打赏
  • 举报
回复
up

62,614

社区成员

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

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