返回介绍

继承方法的专有化

发布于 2024-01-29 22:24:15 字数 593 浏览 0 评论 0 收藏 0

刚才谈到了继承树搜索模式,变成了将系统专有化的最好方式。因为继承会先在子类寻找变量名,然后才查找超类,子类就可以对超类的属性重新定义来取代默认的行为。实际上,你可以把整个系统做成类的层次,再新增外部的子类来对其进行扩展,而不是在原处修改已经存在的逻辑。

重新定义继承变量名的概念引出了各种专有化技术。例如,子类可以完全取代继承的属性,提供超类可以找到的属性,并且通过已覆盖的方法回调超类来扩展超类的方法。我们已经看到过实际中取代的做法。下面是如何进行扩展的例子。

直接调用超类方法是这里的重点。Sub类以其专有化的版本取代了Super的方法函数。但是,取代时,Sub又回调了Super所导出的版本,从而实现了默认的行为。换句话说,Sub.method只是扩展了Super.method的行为,而不是完全取代了它:

这种扩展编码模式常常用于构造函数。例如,参考本章之前的“方法”一节。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文