面向对象编程中的继承与相关特性解析
1. 继承基础与访问修饰符
在面向对象编程里,继承是一个核心概念。不过,继承也存在一些问题,像多重继承会带来更多未解决的问题,并且会增加成员歧义的可能性。同时,基类的可访问性必须等于或高于派生类,不然会引发编译错误。比如下面的代码:
internal class ZClass {
}
public class YClass: ZClass {
}
这里基类 ZClass 的可访问性是 internal ,而派生类 YClass 是 public ,基类可访问性更窄,这就会导致编译错误。
在不同的编程环境中,继承的支持情况有所不同。.NET 仅支持公共继承,而 C++ 支持公共、受保护和私有继承。但实际上,大多数 C++ 开发者主要使用公共继承,受保护和私有继承很少被用到。
访问修饰符决定了成员对于外部世界和派生类的可见性,具体如下表所示:
| 成员访问修饰符 | 外部世界 | 派生类 |
| — | — | — |
| public | 是 | 是 |
| private | 否 | 否 |
| protected | 否 | 是 |
| internal | 是(此程序集) | 是(此程序集) |
| internal protected | 是(此程序集) | 是 |
基类的私有成员是会被继承的,但派生类无法直接访问
超级会员免费看
订阅专栏 解锁全文
399

被折叠的 条评论
为什么被折叠?



