面向对象编程中,Class Inherit、extend和implement有何不同?

19

我知道这是一个愚蠢的问题,但还是想要清楚地了解它。 继承类扩展类实现类之间的适当区别是什么,请举例说明。

如果您可以为我提供一份完整的详细的 C# 对象化编程的学习资料,我将不胜感激。


3
实际上没有任何区别。这只是用来讨论继承主题的不同术语。 - Matthew Cox
1个回答

31

为了澄清Feisty Mango的评论:

Inheriting(继承)是指派生类(子类)和基类(父类)之间的关系。根据可访问级别,派生类可以使用基类中的某些方法和字段。

Extending(扩展)Inheriting(继承)是可以互换的,通常在Java中使用(因为Java中继承的语法是关键字extends)。但在C#中,继承的语法是冒号:

Implementing(实现)通常用于接口而不是类。这主要是因为继承扩展意味着部分类被使用,而实现则意味着实现它的人必须定义整个接口。

另一件需要记住的事情是,在C#中,您只能extend(扩展)inherit(继承)一个类,但可以实现多个接口!

Microsoft Docs提供了与继承相关的良好信息(在此以及其他地方)。


3
请注意,C#有"扩展方法",它们不是某个类的一部分,但被视为对它的"扩展"。这意味着"继承/子类化"和"扩展(指扩展方法)"之间存在根本区别。 - heltonbiker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接