派生

继承的目的:经常需要扩展现有类型来添加功能。

定义派生类要在类标识符后添加冒号,接着添加基类名称

  public class PadItem
        {
            public string Name { get; set; }
            public DateTime LastUpdated { get; set; }
        }
        public class Contact : PadItem
        {
            public string Address { get; set; }
            public string Phone { get; set; }
        }

Contact中没有定义Name属性,但Contact所有实例都可以访问来自PadItem的Name属性,且从Contact派生的所有类都会继承PadItem(或PadItem的父类)。该继承链无限制,每个派生类都拥有由其所有基类公开的所有成员。

1、基类型和派生类型之间的转换

可以将派生类型的值赋给基类型的变量,反之则不成立。所以从基类转换为派生类需要显式转换。

 PadItem p = new Contact();

 2、private修饰符

派生类继承除构造函数和析构器外的所有基类,但继承不一定意味着可以访问。根据封装原则,派生类不能访问基类的private成员

3、protected修饰符

用protected修饰的成员只可以在派生类中访问。另外,要从派生类中访问受保护成员,必须能在编译时确定它是派生类(或其某子类)中的实例

4、单继承

C#是单继承语言,即一个类不能从两个类中派生。

5、密封类

用sealed修饰类禁止其派生

posted @ 2021-02-11 18:42  这总没有了吧  阅读(107)  评论(0编辑  收藏  举报