【发布时间】:2013-08-27 12:14:24
【问题描述】:
我有一个名为 Animal 的抽象类,它有大约 100 个方法,包括 swim。
Dog、Cat、Lion 等许多类都在扩展该类。
现在有一种动物长颈鹿不会游泳。但它正在扩展Animal 抽象类。
我希望长颈鹿对象没有swim 方法。
Giraffe g = new Giraffe();
//g.swim(); // This swim should not come.
我无法更改 Animal Class。 一种解决方案是再创建一个抽象类,复制除游泳之外的所有方法。 但这不是一个好方法。
如何使用 Animal 抽象类来做到这一点? 预先感谢。
【问题讨论】:
-
为什么不使用 Swimable、Barkable 等接口并实现它。
-
问题是你在
Animal的设计很糟糕,因为你说动物会游泳……长颈鹿是动物,不会游泳……
标签: java inheritance abstract-class