S2:c#继承

2021-02-10 00:20

阅读:361

   在C#中,如果一个类后面通过冒号又跟了另外一个类,那么我们就称冒号前面的类为子类,冒号后面的类为父类。这种书写类的方式放映出来的关系就称为类的继承关系。

  1、子类:派生类  

  父类:基类或者超类

 

满足is a关系的两个类可以使用继承。  

  例如:           

  经理is a a 员工           

  程序员  is a 员工           

  学生 is  a Person      

  继承的优点:减少代码冗余,实现代码复用

  继承关系在类图中表示为一个箭头,箭头指向的是父类。  

  子类可以继承父类的非私有成员   一个子类只能有一个直接父类   子类构造默认会调用父类的无参构造

 

base关键字   解析:  

  父类的实例   看成是调用父类的构造,只出现在子类构造后面  

  base(参数列表)父类带参构造的参数列表一致   相当于方法调用,不带有数据类型

  访问修饰符   Public:任何位置都能访问(方法,成员变量,类)   Private:只能当前类自身访问,出了类所在{}无法访问(方法,成员变量)   Protected:当前类和子类能访问及子类的子类(孙子                    类)(方法以及变量)   Internal:只能在当前程序集中使用

  传递性:   如果一个类B继承自类A,而类C又继承类B,那么类C也可以访问到类A中非私有成员

  单根性(C#不支持多继承 Java也不支持多继承)

  实现多态   概念:  

    不同的对象对于同一个操作,做出的响应不同,那么这种情况在面向对象编程中就称为多态。  

  使用多态的目的:  

    使用多态就是为了统一调用。

  实现多态的方式:    

    通过虚方法:    

    实现多态的步骤:  

    01.在父类中通过virtual关键字定义一个虚方法  

    02.在子类中通过override关键字对父类中的虚方法进行重写  

    03.调用的时候,调用的是子类的方法

技术分享图片
Chinese chinese = new Chinese();

            American american = new American();

            Korea korea = new Korea();

            Person[] p =
            {
            chinese,american,korea
            
        };
            //遍历集合中的元素,调用对应子类中的Hello方法
            foreach (Person item in p)
            {
                item.Hello();
            }
            Console.ReadLine()
技术分享图片


评论


亲,登录后才可以留言!