class A
{
private interface D { void f(); }
private class DImp implements D { public 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();
}
}(1)class里嵌套interface需要注意些什么?
(2)请问下面的a.getD()为什么错了?
A a = new A();
// Can't access A.D:
//! A.D ad = a.getD();
(3) private class DImp
public class DImp2有什么不同的效果?
{
private interface D { void f(); }
private class DImp implements D { public 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();
}
}(1)class里嵌套interface需要注意些什么?
(2)请问下面的a.getD()为什么错了?
A a = new A();
// Can't access A.D:
//! A.D ad = a.getD();
(3) private class DImp
public class DImp2有什么不同的效果?
(2)你的interface D是private属性,在类的外部当然不能被访问。
(3)内部类加了private 和public的作用和类的成员加private,public的效果类似,Dimp只能在类A内部被访问,而DImp2可以在类的外部被访问。
2)想引用内部类的时候必须在构造函数里面传入一个内部类类型的参数吧?A a = new A( D d );接口可不可以没试过,还有不能在前面用private吧?
3)用private声明之后,子类不能继承private所修饰的内容
class A
{
private interface D { void f(); }
private class DImp implements D { public 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();
}
public static void main(String[] args){
A a = new A();
A.D ad = a.getD();
}
}