刘铁猛C#入门 024 类的声明,继承和访问控制
类声明的全貌
C#声明类的位置
声明既定义(C#与Java)
- 类的修饰符
最简单的类声明
类的访间控制 :默认internal
共性
- public 和 internal 都是访问修饰符,用于定义一个类型的成员可以被谁访问。
- 它们都可以用来声明类、结构、接口、枚举、字段、方法、属性或事件等
区别
- public 声明的成员对所有其他代码都是可见的,无论这些代码是否位于同一个文件、同一个命名空间或者同一个程序集内。
- internal,声明的成员仅对包含该成员的程序集内的代码可见。把成员的访问性限制在同一个项目(程序集)里面
类成员的访间控制
类的继承
- 类在功能上的扩展
- 只能有一个基类,但可以实现多个接口
- 类访问级别对继承的影响 ,子类的访问级别不能超越父类
- sealed类不能被继承,sealed修饰的类为封闭类
- 是一个,语义上一个子类的实例也是其父类的实例,一个派生类的实例也是其基类的实例。
继承的本质:继承的本质是派生类在基类已有的成员的基础之上对基类进行横向或者纵向上的扩展
- 横向扩展:类成员在数量上面的扩充
- 纵向扩展:不增加类成员的个数,对某些类成员版本进行扩充 —— 重写
成员的继承与访问
- 派生类对继承成员的访问
- 派生类对基类成员的访问
- internal 同一程序集
- private类体内 成员访问默认private
- protected亲族之间,多修饰在父类的方法中
- protected internal 一起使用:表既可以被在成员所在的程序集访问 ,也可以被继承链中的类访问
- 构造器的不可继承性
面对对象的实现风格
- Class - based 基于类进行的封装和多态
- Prototype - based 基于原型进行的封装和多态 、JavaScript
派生类对其类的成员获得与访问在派生类中访间基类的成员
构造器的不可继承性