【发布时间】:2013-04-11 20:32:09
【问题描述】:
强制转换为接口的目的是什么?
我有那个界面
public interface Iperson{
String getTitle();
int getID();
}
我有一个实现它的类,例如
public class Person implements Iperson{
public Person(){...}
@Override
public String getTitle() {
return 'aaa';
}
@Override
public int getID() {
return '111';
}
}
在另一个类中,我有一个带有签名的函数:
public boolean insert(Iperson somePerson)
当somePerson 是Person 的实例和somePerson 是(Iperson)Person 的转换时,调用insert(somePerson) 有什么区别?
什么时候会使用第二种选择?
【问题讨论】:
-
A
Person不需要强制转换为Iperson。它是一个。Iperson的未知实现可以转换为Person。其结果取决于演员表是否有效。