首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >覆盖非抽象方法是很好的做法吗?

覆盖非抽象方法是很好的做法吗?
EN

Stack Overflow用户
提问于 2018-01-06 06:09:55
回答 4查看 7.8K关注 0票数 11

在我需要修改超类方法以具有子类特定逻辑的情况下,方法逻辑对于所有其他子类都是相同的。

我有两个选择:

1)使方法抽象,并对除我的相关子类之外的每个子类重复相同的代码。

2)重写相关子类中的非抽象方法,其中我希望有alter逻辑。

在Java中重写非抽象方法是一个很好的实践吗?在概念上,b/w覆盖非抽象和抽象的方法会有什么区别。

EN

Stack Overflow用户

发布于 2018-01-06 06:21:50

在Java中重写非抽象方法是一个很好的实践吗?

是。(但是,请确保您没有违反Liskov Substitution Principle (引用现有的帖子),它告诉子类不应该破坏父类类型的定义。例如,重写于walk ()类的Animal方法应该执行(具有)步行的行为,它不应该执行飞行或其他操作。

我还建议通过固体原理来理解设计原则。

在概念上,b/w覆盖非抽象和抽象的方法会有什么区别。

AFAIK没有差别。但是,为了明确起见,抽象方法不包含任何实现,而且您的必须重写非抽象方法可以覆盖的位置。

票数 9
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48124801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档