gpt4 book ai didi

c# - OOP 接口(interface)和基类

转载 作者:太空宇宙 更新时间:2023-11-03 21:34:12 26 4
gpt4 key购买 nike

这只是我自己的知识。如果基类“A”实现接口(interface)“I”,A 的任何派生类(比方说 B)是否也“是 I”类型?换句话说"is"关键字返回真?从 B 派生的类 C 怎么样?

问题是,一旦您在基类中实现了一个接口(interface),该类(和派生类)是否一直属于该接口(interface)类型?有什么方法可以删除它以便"is"返回 false?

最佳答案

如果一个基类实现了一个接口(interface),所有派生类也将实现该接口(interface)。事实上,任何派生类也将实现接口(interface)这一事实是面向对象编程的一个关键特征。 (参见 Liskov substitution principle)

Once you implement an interface in a base class, is that class (and derived classes) stuck being of that interface type?

是的。

Any way to remove it so "is" return false?

没有。

如果您需要扩展一个实现接口(interface)的类而不在新类中实现该接口(interface),解决方案是使用encapsulation。 .将基类包装在您的新类中,并显式公开您要允许访问的任何属性或方法。

关于c# - OOP 接口(interface)和基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22568653/

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