public class StrategyTest {
public static void main(String[] args) {
Animal dog = new Dog();
dog.move();
dog.setMoveable(new DogMove());
dog.move();
}
}
interface Moveable{
void move();
}
interface Attackable{
void attack();
}
class Runable implements Moveable{
@Override
public void move() {
System.out.println("------ run -----");
}
}
class DogMove implements Moveable{
@Override
public void move() {
System.out.println("狗摇着尾巴移动");
}
}
abstract class Animal{
Moveable moveable;
Attackable attackable;
public Animal() {
}
public Animal(Moveable moveable, Attackable attackable) {
this.moveable = moveable;
this.attackable = attackable;
}
abstract public void display();
abstract void move();
abstract void attack();
public Moveable getMoveable() {
return moveable;
}
public void setMoveable(Moveable moveable) {
this.moveable = moveable;
}
public Attackable getAttackable() {
return attackable;
}
public void setAttackable(Attackable attackable) {
this.attackable = attackable;
}
}
class Dog extends Animal{
public Dog() {
super(new Runable(), null);
}
public Dog(Moveable moveable, Attackable attackable) {
super(moveable, attackable);
}
@Override
public void display() {
System.out.println("------ 狗 ----------");
}
@Override
void move() {
moveable.move();
}
@Override
void attack() {
attackable.attack();
}
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。