• C#继承小结——面向对象编程的三大机制之一


        继承反应了类和类之间的关系。

        世界上很多事物都是有共性的,共性的那一部分我们就抽象为基类,用于派生其它类,这样提高了代码的复用性,使得代码的结构清晰易读,而且易于代码的扩展和维护。 

        C#的继承只能继承自一个基类,这一点不同于C++的继承。

        C#的继承具有传递性,即B继承自A,C继承自B,则C具有A的所有特性。

        C#的继承隐式为public的。

        假如不在派生类构造器中显示调用一个基类构造器,编译器会自动插入对基类的默认构造器的一个调用,然后才会执行派生类构造器中的代码, 如果基类没有默认的构造器,会造成编译错误。

        举例:动物的共性:有嘴巴,有眼睛,有鼻子,可以移动,能够吃东西

        所以定义基类   (包含动物的共性)

    public class Animal {
    ......
    }

    再定义具体的动物的时候就可以继承自基类Animal,不用再重新定义这些基本的特征,只定义自己独有的特性就好。

    例如:Dog 

    public class Dog:Animal
    {  
            //编译器会自动插入对基类的默认构造器的一个调用,然后才会执行派生类构造器中的代码
    public string Bark;//狗叫声
    }
    public class Dog : Animal {
    //在派生类构造器中显示调用一个基类构造器
    public Dog()
    : base() {
    }
    public string Bark;
    }

    注意:
    可以把一个派生类的值赋给基类,但不能把一个基类的值赋给派生类,因为基类不能转换为派生类,基类中只包含了派生类的一部分特性。

    Animal animal=new Dog(); 正确的

    Dog dog=new Animal();错误



  • 相关阅读:
    量子算法抛转(以及Oracle函数初步)
    量子计算中的幺正操作符和干涉现象
    2个qubit的量子门
    量子计算提前填坑
    单qubit量子门
    入职互联网公司工作以后的一些思考
    善用string.Format
    iOS开发学习笔记 self和super的区别
    当姿态估计算法遇上《本草纲目》,看“刘畊宏男孩”如何驱动虚拟人
    AliAGC 自动增益控制算法:解决复杂场景下的音量问题
  • 原文地址:https://www.cnblogs.com/greenteaone/p/2320596.html
Copyright © 2020-2023  润新知