日期:2014-05-20 浏览次数:20895 次
//A实现IA接口
public class A implements IA {
void m() {}
}
//A1继承A
public class A1 extends A {
void aaaa1(){}
}
//A2继承A
public class A2 extends A {
void aaaa2(){}
}
//包含有A1、A2这些IA的实现类的一个包租婆类
public class BaoZuPo {
private IA a1;
private IA a2;
……
//get set 方法略
}
//经常遇到的情况:
public class Test {
void test() {
A1 a1 = (A1)BaoZuPo.getA1();
a1.aaaa1();
//类似的
A2 a2 = (A2)BaoZuPo.getA2();
a2.aaaa2();
}
}
//A实现IA接口
public class A implements IA {
void m() {}
}
//A1继承A
public class A1 extends A {
void aaaa1(){}
}
//A2继承A
public class A2 extends A {
void aaaa2(){}
}
//包含有A1、A2这些IA的实现类的一个包租婆类
public class BaoZuPo {
private IA a1;
private IA a2;
……
//get set 方法略
}
//经常遇到的情况:
public class Test {
void test() {
IA a1 = BaoZuPo.getA1();
a1.m(); //这里才是意义所在
((A1)a1).aaaa1(); //这里是调用子类自己的方法,体现不出意义
//类似的
IA a2 = BaoZuPo.getA2();
a2.m(); //这里才是意义所谓
((A2)a2).aaaa2(); //这里是调用子类自己的方法,体现不出意义
}
}