现在我们有一个虚基类-鸭子(abstract Duck). 有真鸭子,野鸭子,橡皮鸭子继承了该类.虚基类有swing方法,毕竟游泳是所有的鸭子都应有的功能.还有一个虚方法display,这个方法在子类中复写,毕竟每种鸭子的信息不一样. 现在我们有新的需求,需要让我们的鸭子会飞.那么我们可以轻松的想到,在Duck虚基类中增加一个fly方法就行了.但实际上,如果真这么做的话,会让所有的鸭子都有该功能.而实际上,橡皮鸭是不能飞的!那么,干脆我们不把fly方法写到基类,而是把fly方法抽象成接口,让需要…