//?????????????????У???????????QuackBehavior
publicclassRubberDuckextendsDuckimplementsQuackBehavior{
//?????????????
publicvoidquack(){
System.out.println("Squeak");
}

//???????????
publicvoiddisplay(){
System.out.println("Yellowhead.");
}
}

?????????????????????????????????????????????????Щ???(????fly()?????????????????????).?????????????????MallardDuck.java???????RedHeadDuck.java???Щ???????????????????á????????????????????????????????

????????γ??????????????????????????????Щ???????????????????????????????????????????????????????????????????????仯?????????????????????????????????????????????????????????

??????????????????????????????????????????????(?????????Duck)????????????????????仯????????????????????Щ??????????????????????Щ??????????????Duck???????????????????????????????????????????????????á?????ζ?????????????????????????????????????????????????????????????????С?????????μ????

????????????????б仯?????????????????????Щ??????仯???????????????????仯????????????????????????е????

??????????????????????????????????Duck????

????1)????仯???????????????

????Duck???е????fly()??quack()??????????????????????е???????????ν??仯???????

????Duck???е????swim()?????????????????????????ν??????????

??????????仯???????Duck()???а???????????????γ?????????е????????????仯??????????γ???????仯?????????????????????????????仯????????á???Щ???????Duck.java?????????????????????????????"?????"??????????????Duck.java?????????????????????????????仯?????????????????????????????У?

?????仯???????

//?仯??fly()????????γ????
publicinterfaceFlyBehavior{
voidfly();
}

//?仯??fly()????????????
publicclassFlyWithWingsimplementsFlyBehavior{
publicvoidfly(){
System.out.println("I'mflying.");
}
}

//?仯??fly()?????????????
publicclassFlyNoWayimplementsFlyBehavior{
publicvoidfly(){
System.out.println("Ican'tfly.");
}
}

//?仯??quack()????????γ????
publicinterfaceQuackBehavior{
voidquack();
}

//?仯??quack()??????????
publicclassQuackimplementsQuackBehavior{
publicvoidquack(){
System.out.println("Quack");
}
}

//?仯??quack()???????????
publicclassSqueakimplementsQuackBehavior{
publicvoidquack(){
System.out.println("Squeak.");
}
}

//?仯??quack()???????????
publicclassMuteQuackimplementsQuackBehavior{
publicvoidquack(){
System.out.println("<<Slience>>");
}
}