C# 继承

理解类的继承与成员可访问性
本文详细解释了在继承过程中类成员的可访问性规则,包括私有、公共、保护成员的区别及虚拟成员的特性。还介绍了抽象类、密封类的概念,以及如何在派生类中重写成员。

在继承一个基类时,成员(属性、方法)的可访问性就成了一个重要的问题。派生类不能访问基类的私有成员,但可以访问其公共成员。

只有派生类才能访问基类的protected成员。对于外部代码来说,这个可访问性与私有成员一样:外部代码不能访问private成员和protected成员。

基类的成员可以是虚拟(Virtual)的,也就是说,成员可以由继承它的类重写。派生类可以提供成员的其他实现代码。这种实现代码不会删除原来的代码,仍可以在类中访问原来的代码,但外部代码不能访问它们。如果没有提供其他实现方式,通过派生类使用成员的外部代码就自动访问基类中成员的实现代码。

虚拟成员不能是私有成员,因为这样会自相矛盾--不能说成员可以由派生类重写,同时派生类又不能访问它。

基类还可以定义为抽象类。抽象类不能直接实例化。要使用抽象类,必须继承这个类,抽象类可以有抽象成员,这些成员在基类中没有实现代码,这些实现代码必须在派生类中提供。

当然,抽象基类可以提供成员的实现代码,这是很常见的。不能实例化抽象类,并不意味着不能在抽象类中封装功能。

最后,类可以是密封(seal)的。密封的类不能用作基类,所以没有派生类。

小注:

重写(Override):指在继承关系中,在派生类中重写由基类继承来的方法,这时基类和派生类中就有两个同名的方法,系统会根据对象的实际类型调用相应版本的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值