我来模拟一个人物,然后使用一种武器
public abstract class Role {
Arms arms;//引入武器的接口
public abstract void name();
public void useArms(){
arms.armsName();
};
}
public interface Arms {
public void armsName();//武器的名字
}
然后,我来用关羽和吕布来继承Role,他们使用的武器便继承Arms
public class GuanYu extends Role{
public GuanYu() {
name();
arms = new ArmsType();
}
public void name() {
System.out.println("我是关羽");
}
}
public class ArmsType implements Arms{
public void armsName() {
System.out.println("我使用青龙偃月刀");
}
}
public class LvBu extends Role{
public LvBu() {
name();
arms = new ArmsType2();
//还可以添加其他吕布私有的方法
zuoQi();
}
public void name() {
System.out.println("我是吕布");
}
private void zuoQi() {
System.out.println("我的坐骑是赤兔--");
}
}
public class ArmsType2 implements Arms{
public void armsName() {
System.out.println("我使用方天画戟");
}
}
最后,我来运行
public static void main(String[] args) {
Role role = new GuanYu();
role.useArms();
Role role2 = new LvBu();
role2.useArms();
}
运行结果:
我是关羽
我使用青龙偃月刀
我是吕布
我的坐骑是赤兔--
我使用方天画戟