• 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();

            }

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

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

        

  • 相关阅读:
    【设计模式】迭代器模式
    SpringMVC+Hibernate+Junit4+json基本框架近乎0配置
    Python
    Flex中TabNavigator隐藏和显示选项卡
    Android调试工具_ Stetho
    discuz的php7版本号
    分组加密的四种模式(ECB、CBC、CFB、OFB)
    人件札记:保持高效的办公室环境
    UVA 4857 Halloween Costumes 区间背包
    相机标定(Camera calibration)
  • 原文地址:https://www.cnblogs.com/huang3/p/4919180.html
Copyright © 2020-2023  润新知