public abstract class AbstractGun {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract void shoot();
@Override
public String toString() {
return "AbstractGun [name=" + name + "]";
}
}
/**
* 转发类
*
* @author none
*
*/
public abstract class AbstractToy extends AbstractGun{
private AbstractGun toyGun;
public AbstractToy(AbstractGun toyGun) {
this.toyGun = toyGun;
}
@Override
public String getName() {
return toyGun.getName();
}
@Override
public void setName(String name) {
toyGun.setName(name);
}
@Override
public void shoot() {
System.out.println("射击不是重点....不用刻意实现");
}
@Override
public String toString() {
return toyGun.toString();
}
}
实现类:
public class AK extends AbstractGun{
@Override
public void shoot() {
System.out.println("AK射击........");
}
}
public class ToyAK extends AbstractToy{
public ToyAK(AbstractGun toyGun) {
super(toyGun);
}
}
测试:
public static void main(String[] args) {
AbstractGun ak = new AK();
ak.setName("AK");
ak.shoot();
System.out.println(ak);
AbstractToy toyAk = new ToyAK(ak);
toyAk.setName("toyAk");
toyAk.shoot();
System.out.println(toyAk);
}
结果:
AK射击........
AbstractGun [name=AK]
射击不是重点....不用刻意实现
AbstractGun [name=toyAk]