我定义了两个接口Programmer,BizAgent,两个类:一个是SoftEngineer类工程师类,一个Test测试类
工程师类SfotEngineer实现了接口Programmer,BizAgent,
测试类Test中有一条BizAgent bizAgent=(BizAgent)programmer;这不是表明一个接口能强制转化成另一个接口吗?但两个接口没有继承关系啊,它们属于平等的关系,怎么能强制转换呢?百思不得其解,请高手解惑!详细代码如下:
/**
* 人接口
* @author Administrator
*
*/
public interface Person {
/**
* 返回人的姓名
* @return 姓名
*/
public String getName();
}
/**
*Programmer接口
*/
public interface Programmer extends Person {
/**
* 写程序代码。
*/
public void writeProgram();
}
/**
*BizAgent 接口
*/
public interface BizAgent extends Person{
/**
* 讲解业务
*/
public void giveBizSpeech();
}
/**
*软件工程师类
*/
public class SoftEngineer implements Programmer,BizAgent{
private String name;//软件工程师姓名
public SoftEngineer(String name){
this.name=name;
}
public String getName(){
return name;
}
public void giveBizSpeech(){
System.out.println("我会讲业务。");
}
public void writeProgram(){
System.out.println("我会写代码。");
}
}
/**
*测试类
*/
public class Test {
public static void main(String[] args) {
Programmer programmer=new SoftEngineer("小明");
System.out.println("我是一名软件工程师,我的名字叫"+programmer.getNam()+". ");
programmer.writeProgram();
BizAgent bizAgent=(BizAgent)programmer;
bizAgent.giveBizSpeech();
}
} |