zoukankan      html  css  js  c++  java
  • S2:c#继承

       在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()
    复制代码
  • 相关阅读:
    TThread.CreateAnonymousThread 多线程
    flask——包含,继承,宏
    flask-数据库
    flask框架--模板
    flask框架--cookie,session
    flask框架~简易编写
    flask框架1
    第2题:设计包含min函数的栈
    第1题:把二叉搜索树转换为一个排序的双向链表
    关于过渡机制一点理解
  • 原文地址:https://www.cnblogs.com/wsnb8/p/8538943.html
Copyright © 2011-2022 走看看