您当前的位置: 首页 >  c#

衣舞晨风

暂无认证

  • 3浏览

    0关注

    1156博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C# 继承

衣舞晨风 发布时间:2014-01-08 09:40:24 ,浏览量:3

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

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

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

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

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

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

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

小注:

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

 

关注
打赏
1647422595
查看更多评论
立即登录/注册

微信扫码登录

0.0495s