• 摘自c#本质论相关章节,供大家一起参考


    一、c#中继承的类型分为两种
    1、实现继承
    所谓实现继承是指一个类型派生与一个基类型,拥有该基类型的所以成员字段和函数。当许多类型共享
    一组重要功能时,这种类型的继承是非常有效的。
    2、接口继承
    所谓接口继承是指一个类型只继承了函数的签名,没有继承任何实现代码。在需要指定该类型具有某些
    可用的特性时,最后使用这种类型的继承。
    >>注意:c#不支持多重继承。

    二、结构和类的区别
    1、结构为值类型,类为引用类型。
    2、结构不支持实现继承,类支持。但是它们都支持接口继承。
    定义结构和类可以总结为:
    * 结构总是派生于System.ValueType,它们还可以派生与任意多个接口。
    * 类总是派生于用户选择的另一各类,它们还可以派生与任意多个接口。
    >>注意:c#不支持私有继承,因为基类名上没有public或private限定符。

    三、方法或属性
    1、虚方法:基类函数声明为virtual,这个方法即为虚方法,那么该函数就可以在派生类中重写了。
    2、属性也可被重写,只需在基类函数中声明为virtual即可。
    3、c#当中默认函数是非虚拟的,但可以显式指定virtual(除构造函数以外)。
    >>注意:成员字段和静态函数都不能声明为virtual,因为这个概念只对类中的实例函数有意义。

    四、隐藏方法
    1、如果签名相同的方法在基类和派生类中都进行了声明,但该方法没有声明为virtual 和
    override,派生类方法就会隐藏基类方法。
    2、要实现隐藏可以在派生类中的方法上加new修饰符。其实如果想避免这种冲突可以重命名
    (如果不可能重命名了,那就加上这个关键字吧,^-^)

    五、调用函数的基类版本
    如果想要在派生类中调用基类中的方法,可以使用base.<methodname>()来调用基类中的方法。

    六、抽象类和抽象函数
    c#允许把类和函数声明为abstract,抽象类不能实例化,抽象函数也没有方法体,并且必须在非抽象
    的派生类中被重写。显然抽象函数默认就是virtual的,如果提供该关键字,会报语法错误哦^-^!
    如果一个类当中有抽象函数,那么该类必须为抽象类。

    七、密封类和密封方法
    c#允许把类和方法声明为sealed。对于类来说,这表示不能继承该类;对于方法来说,这表示不能重写该方法。

    >>注意:不能把类型定义为protected、private和protected internal,因为这些修饰符对于包含在命名空间中的
    类型来说是没有意义的。因此这些修饰符只能应用于成员。但是,可以用这些修饰符定义嵌套的类型(即
    包含在其他类型中的类型),因为这种情况下,类型也具有成员的状态。

    本文来自租赁宝网内部技术人员  参考网站:http://www.zulinbao.com

  • 相关阅读:
    POJ 2689
    NEFU 109
    HDU 2098
    NEFU 2
    NEFU 117
    NEFU 84
    POJ 1061
    NEFU116 GCD
    NEFU 115
    HDU 2099
  • 原文地址:https://www.cnblogs.com/systemxgl/p/1823762.html
Copyright © 2020-2023  润新知