小编Sho*_*ked的帖子

Java - 多个装饰器不起作用

我正在尝试装饰器.我创建了一个Tank类和两个装饰器:DoubleGunTank(射击更强大)和FasterTank(驱动更快).他们来了:

public class Tank {
    public int shoot() {
        return 100;
    }

    public int drive() {
        return 10;
    }
}
public class FasterTank extends Tank {

    protected Tank fTank;

    public FasterTank(Tank tank) {
        fTank = tank;
    }

    public int drive() {
        return fTank.drive() * 2;
    }
}

public class DoubleGunTank extends Tank {

    protected Tank fTank;

    public DoubleGunTank(Tank tank) {
        fTank = tank;
    }
    public int shoot() {
        return fTank.shoot() * 2;
    }   
}
Run Code Online (Sandbox Code Playgroud)

我要做的是用双枪和超高速装饰一辆坦克.所以我这样做:

Tank czolg = new Tank(); …
Run Code Online (Sandbox Code Playgroud)

java virtual decorator

2
推荐指数
1
解决办法
1502
查看次数

标签 统计

decorator ×1

java ×1

virtual ×1