????1.??????

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

????2.???????

???????漰????????????????????????ü?У???????????????????????????????????????????????????????????????и÷?????????????Щ???t???÷????????????????????????????????????

publicabstractclassDuck{
//???е????????????????????????д??????????
publicvoidquack(){
System.out.println("Quack");
}

publicvoidswim(){
System.out.println("Allducksfloat??evendecoys.");
}

//????????????????????????????и÷???????????????????????ɡ?
publicabstractvoiddisplay();
}

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

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

publicclassRubberDuckextendsDuck{
//????????????У???????д???????д???
publicvoidquack(){
System.out.println("Squeak");
}

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

??????????????????÷???á??????????????Duck.java?м???fly()?????????????????????о?????÷????????????????????????????????????????????????????????????????д?÷????????÷????????????????????????????????????????????

???????????????????????????????????

????a.?????????????????;
????b.??????????????????
????c.??????????????????????????????????

??????????????????????????????????y??????????????е??????????????????Duck????????????????Щ???????????????????

publicabstractclassDuck{
//???仯?????fly()???quake()??Duck???з??????????γ?????????????????????????

publicvoidswim(){
System.out.println("Allducksfloat??evendecoys.");
}

publicabstractvoiddisplay();
}

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

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

//??????????У??????????FlyBehavior??QuackBehavior
publicclassMallardDuckextendsDuckimplementsFlyBehavior??QuackBehavior{
publicvoiddisplay(){
System.out.println("Greenhead.");
}

publicvoidfly(){
System.out.println("Fly.");
}

publicvoidquack(){
System.out.println("Quack.");
}
}

//????????????У???????????FlyBehavior??QuackBehavior
publicclassRedHeadDuckextendsDuckimplementsFlyBehavior??QuackBehavior{
publicvoiddisplay(){
System.out.println("Redhead.");
}

publicvoidfly(){
System.out.println("Fly.");
}

publicvoidquack(){
System.out.println("Quack.");
}
}