gpt4 book ai didi

c# - 需要澄清 : abstract classes preferred over interfaces. 原因:他们将契约(Contract)与实现分离

转载 作者:行者123 更新时间:2023-11-30 22:44:08 27 4
gpt4 key购买 nike

使用抽象类(在 Visual Basic 中必须继承)而不是接口(interface)来将契约与实现分离。

以上来自"Type design guideline"由微软。我对此有点困惑。我一直认为接口(interface)将契约与实现分离。上述准则到底是什么意思?

谢谢

最佳答案

抽象类和接口(interface)都可以“将契约与实现解耦”。在抽象类中,方法可以声明为抽象的,无需实现,就像使用接口(interface)时一样。对于此类方法,派生类必须提供带有实现的 Override 方法,就像使用接口(interface)时一样。

抽象类和接口(interface)之间的区别在于抽象类可以包含一些具有实现的成员,然后在所有派生类之间共享,并且它可以包含私有(private)/ protected 字段(“状态”) ,接口(interface)显然不能。

关于c# - 需要澄清 : abstract classes preferred over interfaces. 原因:他们将契约(Contract)与实现分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3568685/

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