您的位置:首页 > 其它

内部类与向上转型

2014-08-15 14:32 176 查看

interface a{ //接口

void read_A();

}

interface b{

void read_B();

}

class test1{

private class Test_A implements a{ //内部类继承接口

@Override

public void read_A() {

// TODO Auto-generated method stub

System.out.println("test a");

}

void hh(){

System.out.println("I'm, privating");

}

}

protected class Test_B implements b{ //内部类继承接口

Test_A mm=new Test_A(); //创建私有的内部类对象

@Override

public void read_B() {

// TODO Auto-generated method stub

System.out.println("test b");

mm.hh(); //调用私有内部类的方法

}

}

public Test_A A(){ //返回内部类的构造函数

return new Test_A();

}

public Test_B B(){

return new Test_B();

}

}

public class Test{

public static void main(String[] args){

test1 tt=new test1();

a a=tt.A(); //创建内部被继承的基类对象,向上转型

//test.Test_A bb=tt.A(); //因为内部类Test_A为私有所以不能被其他的类使用,只能在Test1类内使用,也不能向下转型

b b=tt.B();

a.read_A();

b.read_B();

}

}

私有的内部类不能被客户端锁访问,只能被test1调用,也不能向下转型了

@Override

public void read_B() {

// TODO Auto-generated method stub

System.out.println("test b");

mm.hh(); //调用私有内部类的方法

}

}

public Test_A A(){ //返回内部类的构造函数

return new Test_A();

}

public Test_B B(){

return new Test_B();

}

}

public class Test{

public static void main(String[] args){

test1 tt=new test1();

a a=tt.A(); //创建内部被继承的基类对象,向上转型

//test.Test_A bb=tt.A(); //因为内部类Test_A为私有所以不能被其他的类使用,只能在Test1类内使用,也不能向下转型

b b=tt.B();

a.read_A();

b.read_B();

}

}

私有的内部类不能被客户端锁访问,只能被test1调用,也不能向下转型了

b b=tt.B();

a.read_A();

b.read_B();

}

}

私有的内部类不能被客户端锁访问,只能被test1调用,也不能向下转型了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: