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()
    复制代码
  • 相关阅读:
    .vsdx 在线查看 省的安装 visio 2013了
    桌面整理工具 rolan
    第一节、ES6的开发环境搭建
    $("[lay-id='"+this.id+"']")
    mathAge.call(btn) 函数call 改变函数内 this #js
    viewer && ImageFlow 图片滚动组件 图片点击放大 可以滚轮放大缩小 viewer
    ie11 突然不能加载外部css 很神奇 头部改为 <!DOCTYPE> <html>
    CODE[VS] 1219 骑士游历
    CODE[VS] 1169 传纸条
    CODE[VS] 1010 过河卒
  • 原文地址:https://www.cnblogs.com/wsnb8/p/8538943.html
Copyright © 2011-2022 走看看