Discuz! Board

 找回密碼
 立即註冊
搜索
熱搜: 活動 交友 discuz
查看: 6|回復: 0
打印 上一主題 下一主題

可以编写以下代码 结果是什

[複製鏈接]

1

主題

1

帖子

5

積分

新手上路

Rank: 1

積分
5
跳轉到指定樓層
樓主
發表於 2024-3-21 11:49:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
这里的里氏替换原则是指替换对象后系统将按预期运行。 继承机制涉及在子类中使用基类已有的代码。这是种将字段和方法传递给另个类的方法。由于子类型化是通过继承实现的因此这些问题相互关联性很强而且它们之间的区别很难理解。 例子 假设我们正在创建个对几何图形执行某些操作的应用程序。在程序的第个版本中定义了 类型它表示个矩形 在应用程序中的某个时刻我们有个计算矩形面积的函数 使用这样的代码可能如下所示 在本例中 函数将返回结果。

段时间后有必要引入个新图形即正方形。我们知道从数学上来说正方形是长方形。因此按如下方式扩展 类似乎是个好主意 由于正方形的宽度和高度相等因此 基类的方法已被重写设置任何参数也会更改另个参数。使用新图形可能如下所示 返回的结果将是 。到目前 奥地利电报号码数据 为止切都工作正常但由于 类继承自 我们么?结果将是 。因此我们会遇到这样的情况对于相同的值即 和 如果是 类的实例我们会得到 的乘积;如果是 类的实例我们会得到 的乘积。方类。这表明违反了 规则。



解决方案 由于出现的问题应修改应用程序代码。首先我们知道 类不能继承自 类。但是您可以为 几何图形创建个通用接口并在其中放置负责计算面积的方法的签名。这样执行此类操作的责任将从将图形对象作为参数的函数转移到各个接口实现。以下是此类代码的建议 在第种情况下我们计算矩形的面积我们将得到正确的结果 而在正方形的情况下面积将为 。 概括 正如我们所表明的了解 原则可以让我们避免在没有这些原则的情况下很容易犯的错误。里氏替换规则无疑是个重要的规则值得花些时间来理解它。

回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|自動贊助|GameHost抗攻擊論壇  

GMT+8, 2024-12-22 09:31 , Processed in 0.142842 second(s), 5 queries , File On.

抗攻擊 by GameHost X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表
一粒米 | 中興米 | 論壇美工 | 設計 抗ddos | 天堂私服 | ddos | ddos | 防ddos | 防禦ddos | 防ddos主機 | 天堂美工 | 設計 防ddos主機 | 抗ddos主機 | 抗ddos | 抗ddos主機 | 抗攻擊論壇 | 天堂自動贊助 | 免費論壇 | 天堂私服 | 天堂123 | 台南清潔 | 天堂 | 天堂私服 | 免費論壇申請 | 抗ddos | 虛擬主機 | 實體主機 | vps | 網域註冊 | 抗攻擊遊戲主機 | ddos |