【40】类中类

//内部类,最常使用的时机,也是其意义所在,就是可以同时实现上溯造型和信息隐藏
//因为正常的类,只允许被设置成public和protected权限,不能做到完全的信息隐藏
//而内部类,是可以设置为private的,因为此时可将其看作其包含类的成员,如此即可隐藏信息
//与此同时,在其包含内中,编写一个方法,方法内部是创建内部类的实例,而通过return语句
//将新创建的对象上溯造型为内部类的基类或接口,如此一来,就实现了上溯造型和信息隐藏的双重功效

//对外公开的抽象类
abstract class Contents{
public abstract int value();
}
//对外公开 的接口
interface Destinition{
String readLabel();
}

class Parcel{
//以内部类的方式继承公开的抽象类
private class pContents extends Contents{
private int i = 11;
public int value(){return i;}//遵守继承抽象类的规则
}
//以内部类的方式实现对外公开的接口
protected class pDestinition implements Destinition{
private String label;
private pDestinition(String whereto){
label = whereto;
}

public String readLabel(){//遵守实现接口的规则
return label;
}
}

//编写两个方法,实现内部类的实例化,并通过return实现上溯造型
public Destinition dest(String string){
return new pDestinition(string);
}

public Contents cont(){
return new pContents();
}
}

public class Test {

public static void main(String[] args) {
Parcel parcel = new Parcel();
Contents contents = parcel.cont();
Destinition destinition = parcel.dest("Wow");

System.out.println(contents.value());
System.out.println(destinition.readLabel());
}
}

 

转载于:https://www.cnblogs.com/Marstar/archive/2012/03/22/2411486.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值