当前位置: 首页 > article >正文

C# 类和继承(成员访回修饰符)

成员访回修饰符

本章之前的两节阐述了类的可访问性。对类的可访问性,只有两种修饰符:internal和public。
本节阐述成员的可访问性。类的可访问性描述了类的可见性;成员的可访问性描述了类成员的可
见性。

声明在类中的每个成员对系统的不同部分可见,这依赖于类声明中指派给它的访问修饰符。
你已经看到private成员仅对同一类的其他成员可见,而public成员对程序集外部的类也可见。
在这一节,我们将再次研究public和private访问级别,以及其他3个可访问性级别。
在研究成员访问性的细节之前,首先阐述一些通用内容。

在研究成员访问性的细节之前,首先阐述一些通用内容。

  • 所有显式声明在类声明中的成员都是互相可见的,无论它们的访问性如何。
  • 继承的成员不在类的声明中显式声明,所以,如你所见,继承的成员对派生类的成员可
    以是可见的,也可以是不可见的。
  • 以下是5个成员访问级别的名称。目前为止我们只介绍了public和private。
    • public
    • private
    • protected
    • internal
    • protected internal
  • 必须对每个成员指定成员访问级别。如果不指定某个成员的访问级别,它的喼式访问级
    别为private。
  • 成员的可访问性不能比它的类高。也就是说,如果一个类的可访问性限于它所在的程序
    集,那么类的成员在程序集的外部也不可见,无论它们的访问修饰符是什么,public也不
    例外。

访问成员的区域

类通过成员的访问修饰符指明了哪些成员可以被其他类访问。你已经了解了public和
private修饰符。下面的类中声明了5种访问级别的成员

public class MyClass{public  int Member1;private int Member2;protected int Member3;internal int Member4;protected internal int Member5;
}

另一个类(如类B)能否访问这些成员取决于该类的两个特征。

  • 类是否派生自MyClass类。

  • 类B是否和MyClass类在同一程序集。
    这两个特征划分出4个集合,如图8-15所示。与MyClass类相比,其他类可以是下面任意一种。

  • 在同一程序集且继承MyClass(右下)。

  • 在同一程序集但不继承MyClass(左下)。

  • 在不同的程序集且继承myClass(右上)。

  • 在不同的程序集且不继承myClass(左上)。
    这些特征用于定义5种访问级别,下一节将详细介绍这一点。

访问性的区域划分

公有成员的可访问性

public访问级别是限制最少的。所有的类,包括程序集内部的类和外部的类都可以自由地访
问成员。图8-16阐明了MyClass的public类成员的可访问性。
要声明一个公有成员,使用public访问修饰符,如:

public  int Member1;

公有类的公有成员对同一程序集或其他程序集的所有类可见

私有成员的可访问性

private访问级别是限制最严格的。

  • private类成员只能被它自己的类的成员访问。它不能被其他的类访问,包括继承它的类。
  • 然而,private成员能被嵌套在它的类中的类成员访问。
    图8-17阐明了私有成员的可访问性。

任何类的私有成员只对它自己的类〈或嵌套类)的成员可见

受保护成员的可访问性

protected访问级别如同private访问级别,但它允许派生自该类的类访问该成员。图8-18
阐明了受保护成员的可访问性。注意,即使程序集外部继承该类的类也能访问该成员。

公有类的受保护成员对它自己的类成员或派生类的成员可见。
派生类甚至可以在其他程序集中

内部成员的可访问性

标记为internal的成员对程序集内部的所有类可见,但对程序集外部的类不可见,如图8-19
所示。

内部成员对同一程序集内部的任何类成员可见,但对程序集外部的类不可见

受保护内部成员的可访问性

标记为protected internal的成员对所有继承该类的类以及程序集内部的所有类可见,如
图8-20所示。注意,允许访问的集合是protected修饰符允许访问的类的集合加上internal修
饰符允许访问的类的集合。注意,这是protected和internal的并集,不是交集。

公有类的受保护内部成员对相同程序集的类成员或继承该类的类成员可见。
它对其他程序集中不继承该类的类不可见

成员访问修饰符小结

下面两个表格概括了5种成员访问级别的特征。表词列出了修饰符,并直观地概括了它们
的作用。
成员访问修饰符
图8-21演示了5个成员访问修饰符的可访问级别。

各种成员访问修饰符的相对可访问性

表8-2在表的左边列出了访问修饰符,并在顶部划分出类的类别。派生指类继承声明该成员
的类。非派生指类不继承声明该成员的类。表格单元中对勾的意思是该类别的类可以访问带有相
应修饰符的成员。

成员可访问性总结

http://www.lryc.cn/news/2402052.html

相关文章:

  • c++ stl容器之map用法
  • Linux-文件管理及归档压缩
  • 结合Jenkins、Docker和Kubernetes等主流工具,部署Spring Boot自动化实战指南
  • 微软认证考试科目众多?该如何选择?
  • MCP协议在LLM系统中的架构与实现原理研究
  • Dify工作流实践—根据word需求文档编写测试用例到Excel中
  • 【LC实战派】小智固件编译
  • HTTP(超文本传输协议)详解
  • Unity安卓平台开发,启动app并传参
  • jdbcTemplate.query备忘录
  • 如何搭建Z-Blog PHP版本:详细指南
  • Docker 常用命令详解
  • uniapp uni-id-co errCode“:“uni-id-captcha-required“,“errMsg“:“Captcha required
  • Github Copilot新特性:Copilot Spaces-成为某个主题的专家
  • React 第五十三节 Router中 useRouteError 的使用详解和案例分析
  • 12分钟讲解主流React库
  • 《doubao-lite-32k 模型缓存机制使用指南》
  • 攻防世界-XCTF-Web安全最佳刷题路线
  • t021-高校物品捐赠管理系统【包含源码材料!!!!】
  • 设计模式——面向对象设计六大原则
  • Python制作史莱姆桌面宠物!可爱的
  • React hook之userReducer
  • Dify源码教程:账户和密码传递分析
  • 如果科技足够发达,是否还需要维持自然系统(例如生物多样性)中那种‘冗余’和‘多样性’,还是可以只保留最优解?
  • 数据分析图表类型及其应用场景
  • 第四十二天打卡
  • Github 2025-06-03Python开源项目日报 Top10
  • Vim查看文件十六进制方法
  • 电脑提示dll文件缺失怎么办 dll修复方法
  • 【自动思考记忆系统】demo (Java版)