并非所有鸭子都会飞

例如橡皮鸭无法飞翔，也无法“呱呱叫”；只能通过覆盖quack()方法使之行为变为"吱吱叫"
如果今后再添加了诱饵鸭呢?

诱饵鸭不能叫，也不能飞，接下来的超类将如何进行设计？

通过继承来提供鸭子的行为, 缺点有:
1. 代码在多个子类中重复;
2. 运行时的行为不容易改变;
3. 很难知道所有鸭子的全部行为;
4. 改变会牵一发动全身, 造成其他鸭子不想要的改变;