62,614
社区成员
发帖
与我相关
我的任务
分享
Programmer programmer = new SoftEngineer("小明");
BizAgent bizAgent = (BizAgent) programmer;
bizAgent.giveBizSpeech();
将代码整理了下,原因是: new SoftEngineer("小明");//这个实例是Person的实例,
BizAgent bizAgent = (BizAgent) programmer;//这里转换是这个实例的转换,而不是接口的转换。
如果楼主认为借口可以转换自己可以试试:BizAgent bizAgent = (BizAgent) Programmer
//BizAgent bizAgent=(BizAgent)programmer;
SoftEngineer s = (SoftEngineer)programmer;//先向下转型
BizAgent bizAgent = (BizAgent)s; //再向上转型.
class Person {
}
class Manager extends Person {
}
class Employer extends Person {
}
public class TestConvert {
public static void main(String[] args) {
Person p = new Manager();
Employer e = (Employer)p;
}
}
这个和你的示例差不多