组合转发练习

xiaoxiao2021-02-28  56

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]

转载请注明原文地址: https://www.6miu.com/read-2620008.html

最新回复(0)