zoukankan      html  css  js  c++  java
  • 对C#继承、多态的理解

    11月3日 阴天

     前两天看某位大牛写的程序,对于C#多态有困惑,今天一大早来查阅了不少资料,自认为有了一个基本的认知,记录下来,一扫今天这阴霾的天气

    ----------------------------------------------------------------- 我是华丽的分割线 ------------------------------------------------------

    1、类的创建:

    • 首先用abstract创建抽象父类,在父类钟添加virtual虚方法
    • 创建子类继承父类,子类中用override重写父类钟的方法
    • 声明一个父类,实例化的时候分别用子类实例化,实现多态
    • 实现多态就是在父类的基础上声明多个子类,多个子类对父类分别有不同的方法来实现

    2、上代码:

     1     //子类3
     2     public class Japanese : Person
     3     {
     4         public override string CallName(string name)
     5         {
     6             return "我是日本人,我的名字叫:" + name;
     7         }
     8     }
     9     //子类2
    10     public class Korea : Person
    11     {
    12         public override string CallName(string name)
    13         {
    14             return "我是朝鲜人,我的名字叫:" + name;
    15         }
    16     }
    17     //子类1
    18     public class Chinese : Person 
    19     {
    20         public override string CallName(string name)
    21         {
    22             return "我是中国人,我的名字叫:" + name;
    23         } 
    24     }
    25     //父类
    26     public abstract class Person
    27     {
    28         public virtual string CallName(string str) { return str; }
    29     }
    1 private void button1_Click(object sender, EventArgs e)
    2 {
    3     Person[] person = {new Chinese(),new Korea(),new Japanese()};
    4     foreach (Person p in person)
    5     {
    6         MessageBox.Show(p.CallName("张三"));
    7     }
    8 }

     3、继承与多态的理解:

    • 一个类用abstract关键字修饰那这个类就是抽象类
    • 抽象类不能被实例化
    • 抽象方法不能有方法体,连{ }都不能有
    • 抽象方法只能存在于抽象类中,但是抽象类中可以有非抽象方法
    • 抽象类不能是静态类、密封类
    • 抽象类中的所有方法必须被子类重写,除非子类也是抽象类
    • 抽象方法存在的目的:为了约束类中方法存在的形式(参数列表、return类型)
    • base关键字可以用来访问当前对象的基类对象

         (PS:第3条的总结参考了网名“刘二雄”的博文,在此表示感谢~)

     -------------------------------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    Libevent库学习笔记
    最大的k个数问题
    MongoDB之整库备份还原单表collection备份还原
    精通MATLAB混合编程
    AutoCAD 2016中文版从入门到精通(第2版)
    MATLAB科学计算范例实战速查宝典
    Android系统应用开发实战详解
    AutoCAD快捷命令速查大全
    TCP IP入门经典(第5版)
    STC8系列单片机开发指南:面向处理器、程序设计和操作系统的分析与应用
  • 原文地址:https://www.cnblogs.com/goldendragon/p/9900602.html
Copyright © 2011-2022 走看看