您的位置:首页 > 编程语言 > Java开发

阅读笔记--java编程思想第四版 --接口嵌套

2016-03-23 22:05 459 查看
/**
* 该类是用于说明嵌套接口
*/
class A{
interface B{
void fun();
}

public class BImp implements B{
public void fun(){}
}

private class BImp2 implements B{
public void fun() {}
}

public interface C {
void fun();
}

class CImp implements C{
public void fun() {}
}

private class CImp2 implements C{
public void fun() {}
}

private interface D{
void fun();
}

private class DImp implements D{
public void fun(){};
}

public class DImp2 implements D{
public void fun() {}
}
public D getD(){return new DImp2();}
private D dRef;
public void receiveD(D d){
dRef = d;
dRef.fun();
}
}

interface E{
interface G{
void fun();
}
public interface H{
void f();
}
void g();
}

public class NestingInterfaces {
public class BImp implements A.B{
public void fun(){}
}

class CImp implements A.C{
public void fun(){};
}

class EImp implements E{
public void g(){};
}

class EGImp implements E.G{
public void fun() {

};
}

class EImp2 implements E{
public void g(){}
class EG implements E.G{
public void fun() {}
}
}

public static void main(String[] args) {
A a = new A();
/*A.D d = a.getD(); //D为私有类,外面的类没有权限访问 */
/*A.DImp2 d2 = a.getD();  */
/*a.getD().fun();*/
a.receiveD(a.getD());
}
}


1、文中提到:实现一个priavate接口只是一种方式,它可以强制该接口中的方法定义不要添加任何类型的信息(也就是说不允许向上转型)。这一句话不太了解,希望有大神帮忙解答,感激不尽。

2、接口中嵌套的接口也是public类型的。

3、getD()方法中,因为返回的类型D是A类中的私有类,所以在main方法中,不能申明A.D类型的对象,又因为getD()方法返回的D为private类型,所以不能调用fun()方法。

备注:小弟第一次写博客,且是一个初学者,如有理解错误,请各位大侠指点,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: