第8.1.5节
class A{
private interface D{
void f(){}
}
public class DImp2 implements D{
public void f(){}
}
public D getD(){ return new DImp2();}
private D dRef;
public void receiveD(D d){
dRef=d;
dRef.f();
}
}
在main中生成A的一个实例a
A.D ad=a.getD();
A.DImp2 di2=a.getD();
a.getD().f();
这三条为什么通不过,而必须写成
a.receiveD(D.getD());
才能通过,这是为什么啊
class A{
private interface D{
void f(){}
}
public class DImp2 implements D{
public void f(){}
}
public D getD(){ return new DImp2();}
private D dRef;
public void receiveD(D d){
dRef=d;
dRef.f();
}
}
在main中生成A的一个实例a
A.D ad=a.getD();
A.DImp2 di2=a.getD();
a.getD().f();
这三条为什么通不过,而必须写成
a.receiveD(D.getD());
才能通过,这是为什么啊
解决方案 »
- 请大家指教.急等
- 在java中怎么把ascii 字符放在小框框中...也就是下面程序的每一个小框子中
- ArrayList不是线程安全的,而Vector则是.谁能举一个例子说明这一点?
- 使用URL类出现异常的问题
- [高手注意] 请高手看看ImageIO的问题!
- 如何JInternalFrame独立显示而不用JFrame容器?
- 刚刚准备挂牌成立的小公司适合在校大学生去吗?
- 急急急!!!(在线等)Exception in thread "main" java.lang.NoClassDefFoundError: Hello
- 怎样为SSLContext创建一个实例?
- 菜鸟提问:
- 我的泡排序:错在那里?(谢谢)
- 请问这个class变量是怎么来的
A.D ad=a.getD(); // D是私有的,只在A中可见
A.DImp2 di2=a.getD();//agetD() 返回的是D 不能转化为其实现类
//A.DImp2 di2=(A.DImp2)a.getD(); 这样就ok
a.getD().f(); //D是私有的
A.DImp2 di2=a.getD();能通过吗