gpt4 book ai didi

c# - 既然我们已经有了它的超集抽象类,还需要引入什么接口(interface)呢?

转载 作者:太空狗 更新时间:2023-10-30 00:19:16 25 4
gpt4 key购买 nike

抽象类包含两种类型的方法 - 抽象(非实现)和具体(实现)方法。而接口(interface)仅包含未实现的方法。这意味着接口(interface)是抽象类的子集。那么为什么在 C# (.Net) 中引入接口(interface)呢?在我看来,有两个原因:

  1. 支持多重继承
  2. 支持 C# 中值类型(结构)的继承。

是否还有其他原因或我遗漏了一些隐藏的概念?

最佳答案

您缺少的是考虑这两个类之间的关系。

继承(与抽象类一起使用)是一种is-a 关系。因此,如果您正在为 vert 诊所开发应用程序,您可能会创建一个 Animal 抽象类,然后从中创建 Cat、Dog、Bird 和 Fish,因为 Cat is-a Animal, Dog is-a 动物等

接口(interface)实现定义了一个can-do关系。也许您希望能够在您的应用程序中打印几样东西(发票、动物、客户资料)。你不应该为此使用继承(即抽象类),因为 Invoice is-a Print 没有任何意义,但是 Invoice can-do Print, CustomerProfile can-do 打印确实有意义。

关于c# - 既然我们已经有了它的超集抽象类,还需要引入什么接口(interface)呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22733115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com