C#第四讲

一、类

    1、父类,也叫基类、超类

    2、子类,也叫派生类

 

二、继承

    公共信息写在一个单独类里面来做成父类,让其他子类继承。

    1、继承的主要特点

       A、ClassA:ClassB    //ClassA叫子类(派生类),ClassB叫基类(父类,超类),ClassB里面的所有成员都会被ClassA调用

                                      (当然要受到修饰符的约束:私有成员也会被继承,只是没有访问权限)。

       B、ClassA:ClassB且ClassB:ClassC         //ClassB类继承了ClassC类,ClassA类继承了ClassB类,所以ClassA也就继承了ClassC

       C、任何类型的基类是Object类。

       D、在类前面加【sealed】修饰,则该类变成【密封类】,密封类是不允许继承的。

       E、任何一个类都具有默认的构造方法,如果人为添加构造方法就按人为添加的构造方法创建对象。

            程序执行时先执行子类的构造方法,再执行父类的够着方法,所有继承类的构造方法执行完再执行指定方法。

       F、父类、子类中具有相同名称的方法就调用子类的同名方法,这种情况下系统提示子类的同名方法前加【new】修饰来区分。

       G、一个父类的方法允许子类修改的话需要在父类的方法前加【virtual】修饰,子类的同名方法前要加【overried】修饰。

            父类中的方法为虚方法(有virtual修饰的)时,之类的同名方法才可以重写,重写的方法要用overried来修饰。此时只有重写的方法被执行。

       H、父类的对象可以用子类来创建,但反过来不能把子类对象用父类来创建。

       I、父类、子类中具有相同方法时没有重写的话,以就近原则启用(里氏替换原则)最近同名方法。如果是方法被子类重写过,则会调用重写过的方法。

三、多态

     同一种方法具有多种实现形式,重写和重载都属于多态的情形。

     1、重载是指同名方法中方法的数据类型不同、参数个数不同、参数数据类型不同的方法之间互相被替代使用的情形。

        ** 每种方法的上一行输入三个斜杠【///】时系统会自动写出提示的格式,在这格式中只需填写必要的说明就可以在调用处看到这些提示。

     2、静态方法不能被重写,但可以隐藏。静态类里面只能有静态成员。

    

四、字段和属性

    字段是只能用固定的赋值方式改变其值或读取其值。

    属性可以灵活控制读和写,属性会带有get和set方法。

    如:private string name;               //name字段为私有变量,只为属性而存在。

        public string Name                   //Name才是外部调用的属性名称

        {

            get { return name; }           //可灵活设置读取方式

            set { name = value; }         //可灵活设置写入方式

        }

    

五、抽象类

    在类或方法前加【abstract】就可以定义抽象类或抽象方法,一个类里面只要有一个抽象方法就认为这个类就是抽象类。

    一个类继承抽象类时必须完成抽象类中的所有抽象方法。

    

六、接口

    更加严格的抽象类,接口中只能有抽象方法。

    接口中的每个抽象方法前系统默认了【public static】的修饰,所以无需填写任何修饰,直接写方法名称就可以。

    如:interface Interface1

        {

            void A();

            void B();

        }

    和抽象雷一样,一个类继承接口时必须完成接口中的所有抽象方法。

    ** 类是单继承、接口是多继承。

    

原文地址:https://www.cnblogs.com/huang3/p/4919180.html