Discuz! Board

 找回密碼
 立即註冊
搜索
熱搜: 活動 交友 discuz
查看: 4|回復: 0

知道 类不能继承

[複製鏈接]

1

主題

1

帖子

5

積分

新手上路

Rank: 1

積分
5
發表於 2023-12-21 11:27:17 | 顯示全部樓層 |閱讀模式
这是一种将字段和方法传递给另一个类的方法。由于子类型化是通过继承实现的,因此这些问题相互关联性很强,而且它们之间的区别很难理解。 例子 假设我们正在创建一个对几何图形执行某些操作的应用程序。在程序的第一个版本中,定义了 类型,它表示一个矩形: 在应用程序中的某个时刻,我们有一个计算矩形面积的函数: 使用这样的代码可能如下所示: 在本例中, 函数将返回结果 。 一段时间后,有必要引入一个新图形,即正方形。

我们知道,从数学上来说,正方形是长方形。因此,按如下方式扩展 类似乎是个好主意: 由于正方形的宽度和高度相等,因此 基类的方法已被重写,设置任何参数也会更改另一个参数。使用新图形可能如下所示: 返回的结果将是 。到目前为止,一切都工作正常,但由于 类继 C级联系人列表 承自 ,我们可以编写以下代码: 结果是什么?结果将是 。因此,我们会遇到这样的情况:对于相同的值,即 和 ,如果是 类的实例,我们会得到 的乘积;如果是 类的实例,我们会得到 的乘积。



方类。这表明违反了 规则。 解决方案 由于出现的问题,应修改应用程序代码。首先我们自 类。但是,您可以为 几何图形创建一个通用接口,并在其中放置负责计算面积的方法的签名。这样,执行此类操作的责任将从将图形对象作为参数的函数转移到各个接口实现。以下是此类代码的建议: 在第一种情况下,我们计算矩形的面积,我们将得到正确的结果 ,而在正方形的情况下,面积将为。



回復

使用道具 舉報

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

本版積分規則

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

GMT+8, 2025-4-20 19:01 , Processed in 1.298724 second(s), 29 queries .

抗攻擊 by GameHost X3.4

© 2001-2017 Comsenz Inc.

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