繁体   English   中英

继承的类可以访问基类吗

[英]does inherited class can access base class

如果我有ThumbPhoto实体继承了Photo实体,而Photo实体继承了Entity<int>足以使用

public class ThumbnailPhoto : Photo

还是我应该使用

public class ThumbnailPhoto : Photo, Entity<int>

C#不支持多重继承,所以不可以。

尽管如此,这:

public class ThumbnailPhoto : Photo

意味着由于以下原因,您将有权访问Entity方法/属性

public class Photo : Entity<int>

无论您继承的继承多深,此原则都有效。

C#中不允许多重继承。 您不能从多个类中继承。 但是,层次继承是可以的。 因此可以这样写:

public class ThumbnailPhoto : Photo

并且您还从Entity<int>派生

第一个就足够了。

基类或基类的接口会自动继承。

实际上, Entity不是接口,后者甚至都不是有效的,因为您只能在C#中指定单个基类。

public class ThumbnailPhoto : Photo

上面是一个选择并且是足够的,因为如果您还可以包括Entity<int> ,则将不会获得任何好处,因为假设Photo是从Entity<int>派生的

public class ThumbnailPhoto : Photo, Entity<int>

上面是C# 支持的多重继承的示例


不要将此与支持的多接口实现混淆:

public class ThumbnailPhoto : Photo, IEntity, IAmAnInterface

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM