MyInt.java:从接口实例分配一个对象到另一接口实例
interface Outer{
void ofoo();
interface Inner {
void ifoo();
}
}
MyClass.java:
class MyInfClass implements Outer, Outer.Inner{
int x;
public void ofoo{
//
}
public void ifoo{
//
}
}
class MyClass{
void testFoo(){
Outer obj = new MyInfClass();
Inner iObj;
//iObj = obj; Tried this and got compilation error
//Out of wild guess I tried the following
iObj = (MyInfClass) obj; //Runs Successfully
iObj.ifoo();
}
}
定义此行为和是它适用于其它情形一样
Interface interfaceRef = new SubClass(); // SubClass implements the Interface
SuperClass superClassRef = (SubClass) interfaceRef;
是否有任何其他正确的方法来做到这一点?
创建对象时,最好的办法是使用类名称。没有必要进行类型检查和转换:您知道该对象是什么类型。你创造了它。 – xmjx