c#重载和重写及运用

重载的条件:
1.必须在同一个类中2.方法名必须相同3.参数列表不能相同。
   重写的条件:
          1. 在不同的类中
          2. 发生方法重写的两个方法返回值,方法名,参数列表必须完全一致
          3. 子类抛出的异常不能超过父类相应的方法抛出的异常
          4. 子类方法的访问级别不能低于父类相应方法的访问级别(public,package,protected, private)
          5.方法体不同

super()调用父类构造,super.只能调用父类的实例方法
this()调用该类的其他构造方法,this.调用类的属性,方法
如果父类有有参构造,子类必须定义构造方法

重载:

重载发生在同一个类中;重载主要是针对同一个类中方法名相同但参数(必须的)不同或返回类型(不是必须的)不同的情况。可以参照如下的代码

class OverLoadTest
    {
        public void Hello()
        {
        }
        public void Hello(string str)
        {
        }
        public string Hello()
        {
        }
    }
在这段代码中有三个具有相同名称的方法Hello,他们彼此之间是重载的关系,注意两点:他们共同存在于一个类中,虽有同样的名字但是执行不同的操作;第一个方法和第三个方法只有返回类型不同,这在C# 中是不允许的,编译器会报出“已定义一个名为"Hello"的方法”的错误。

重写:

重写发生在有继承关系的类之间 
      重写发生在派生类上,通过override关键字来改写从其父类继承过来的具有相同返回值,方法名称和参数列表的方法。

class Program
    {
        static void Main(string[] args)
        {
            OverWriteTestTT owTT = new OverWriteTestTT();
            owTT.Hello();
            overWriteTestTTT owTTT = new overWriteTestTTT();
            owTTT.Hello();
        }
    }
    class OverWriteTest
    {
        //Over write the method ToString();
        public override string ToString()
        {
            return "hello world";
        }
        //Define a virtual method Hello() to be over written
        public virtual void Hello()
        {
            Console.WriteLine("hello");
        }
    }
    class OverWriteTestTT : OverWriteTest
    {
        public override void Hello()
        {
            Console.WriteLine("No hello world");
        }
    }
    class overWriteTestTTT : OverWriteTestTT
    {
        //Over write the method Hello() of class OverWriteTestTT
        public override void Hello()
        {
            base.Hello();
            Console.WriteLine("NNo hello world");
        }
    }

转载于:https://www.cnblogs.com/bill--wang/p/9518089.html

c#重载和重写及运用相关推荐

  1. java中重载与重写的区别

    最近了解一下重载和重写  一.重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading ...

  2. java中的重载和重写

    1.重载:可以在同一个类中存在多个函数,函数名称相同但参数列表(参数个数,参数类型,参数顺序)不同, 不能通过方法返回值类型,访问权限以及抛出异常来定义重载. 2.重写: "重写(覆盖)&q ...

  3. 方法的重载与重写_java基础知识之重载和重写

    重载(Overloading)和重写(Overriding)是Java中两个比较重要的概念 重载 简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间, ...

  4. Java_重载与重写

    在java中,重载与重写都是多态的体现.重载(Overload)体现的是编译时多态,而重写(Override)体现了运行时多态. 重载(Overload): 定义:在一个类中,同名的方法如果有不同的参 ...

  5. Java——重载和重写

    前言 在程序设计中经常会遇到对对方法的重载或者重写,下面将介绍重载和重写. 重载(Overloade) 重载出现的原因 任何程序设计语言都具备的一项重要特性就是对名字的运用.当创建一个对象时,就给对象 ...

  6. 什么是重载or重写,二者的区别是?

    目录 1.重写 2.重载 3.重载(Overload) 和重写(Override) 的区别? 1.重写 重写必须满足如下条件: (1)方法的返回值类型必须相同. (2)方法的参数个数必须相同. (3) ...

  7. java重载与重写的区别你懂了吗

    目录: 1.重载 2.重写 1.重载 (1) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. (2)重载的特点: 1.方法名要一样,但是参数类型或个 ...

  8. java构造方法重载_Java 重载、重写、构造函数的实例详解

    Java 重载.重写.构造函数的实例详解 方法重写 1.重写只能出现在继承关系之中.当一个类继承它的父类方法时,都有机会重写该父类的方法.一个特例是父类的方法被标识为final.重写的主要优点是能够定 ...

  9. 二十三、Java类中重载和重写的区别

    @Author:Runsen @Date:2020/5/31 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排 ...

  10. java编译时多态和运行时多态_运行时多态、编译时多态和重载、重写的关系(不区分Java和C#,保证能看懂!)...

    以前在大学学习OOP的时候,知道了重载和重写的区别,但如果要把他们和多态联系起来,我想很多新手朋友和我当初一样是死记的,可是时间长了,自然而然就忘记了,最近在写测试的时候,终于"开窍&quo ...

最新文章

  1. snort完整安装(snort-2.8.3.1)
  2. ftime()函数的用法----算函数运行时间
  3. 为啥阿里巴巴规定要在 @Transactional 指定 rollbackFor?
  4. linux虚拟内存当硬盘,linux里面虚拟内存和swap有什么不同?
  5. 不想跑数了,数据分析师的前途在哪里?
  6. python之函数名称空间,作用域,嵌套函数
  7. spark中的println失效问题解决
  8. Hibernate延时加载
  9. 在MacOSX上重新安装Python (10.8) python 自然语言处理的前戏
  10. Node.js的基本使用3
  11. pku 1611 The Suspects 并查集的应用
  12. 什么是JDK JRE JVM?
  13. 去除 火狐浏览器自动给域名前加 www.
  14. 【完结】囚生CYの备忘录(20220906-20221120)
  15. 学英语尽量不要从背词汇表开始
  16. 使用medusa进行ssh爆破
  17. 键盘哪个键是锁定计算机,键盘锁是哪个键 锁键盘的是哪个键 - 云骑士一键重装系统...
  18. 阅读笔记20141202
  19. 发字的楷书写法图片_永字八法”楷书笔画用笔技巧的方法(附书法图)
  20. java获取指定日期的所在周的第一天(周一)

热门文章

  1. Pandas使用DataFrame进行数据分析比赛进阶之路(一)
  2. Redis源码分析(一)--Redis结构解析
  3. Java网络编程----基础
  4. ansible安装和基本使用
  5. vue个人博客项目部署上线
  6. 最全数据结构详述: List VS IEnumerable VS IQueryable VS ICollection VS IDictionary
  7. 《像程序员一样思考》
  8. 使用keepalived搭建mysql主从备份、切换
  9. 面试题9:斐波那契数列
  10. java WebService 异常