美文网首页通往成功之路
【C#】重写和重载的区别

【C#】重写和重载的区别

作者: 此十八 | 来源:发表于2018-04-26 15:31 被阅读1次

导读:学习C#的时候,其实没想那么多的。就想着把视频看完,把例子做一下就好了,其实真心不懂那些玩意儿是什么,就好像是又回到了学VB的时候。可是,边上师哥压榨我这本就不聪明的脑袋瓜,问了我好多问题,于是乎,昏天暗地的去给这些问题找答案。唉!那天,师哥问了我几个问题:构造函数是干什么的?重写是什么?重载是什么?重写和重载的区别的是什么?它们分别怎么用?额,先简单说一下吧,以后认识深刻了,再回头修改。

一、基本定义

构造函数:是一种特殊的方法 。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。((C#中讲面向对象的继承的时候讲了,我是没怎么在意,师哥那么一说,才。。。。。)

重写:当一个子类继承一父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个方法重写了父类中的方法。

重载:一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法。

PS:理解概念

重载:当年,大街上遇上了一个男的,对他产生了深深地爱意。事过多年,在同一个地点,遇上了同一个人,但此时,再也产生不了当年的爱意。同样的大街(类),同样的人(方法),因为条件改变(参数类型),就再也产生不了爱意(返回结果),这时候,我的感情就被重载了。(或许是厌恶、是冷漠)

二、实现方法

重写:通常,派生类继承基类的方法。因此,在调用对象继承方法的时候,调用和执行的是基类的实现。但是,有时需要对派生类中的继承方法有不同的实现。例如,假设动物类存在“跑"的方法,从中派生出马和狗,马和狗的跑得形态是各不相同的,因此同样方法需要两种不同的实现,这就需要"重新编写"基类中的方法。"重写"基类方法就是修改它的实现或者说在派生类中重新编写。

重载:在一个类中用相同的名称但是不同的参数类型创建一个以上的过程、实例构造函数或属性。

三、举例说明

1,重写

[csharp] view plaincopyprint?

using System;  

using System.Collections.Generic;  

using System.Linq;  

using System.Text;  

namespace OverrideTest  

{  

class Program  

    {  

static void Main(string[] args)  

        {  

my HHX =new my();  

            HHX.talk();  

        }  

public class you  

        {  

public virtual void talk()  

            {  

Console.WriteLine("one");  

            }  

        }  

public class my : you  

        {  

public override void talk()  

            {  

Console.WriteLine("two");  

            }  

        }  

    }  

}  

输出结果:

2,重载

[csharp] view plaincopyprint?

using System;  

using System.Collections.Generic;  

using System.Linq;  

using System.Text;  

namespace 重载  

{  

class Program  

    {  

static void Main(string[] args)  

        {  

string s = null;  

            show(s);  

object a = "123";  

            show(a);  

        }  

static void show(string s)  

            {  

Console.WriteLine("string");  

            }  

static void show(object o)  

            {  

Console.WriteLine("object");  

            }  

        }  

}  

输出结果:

四、区别

经过上面的两个简单例子,现在,总结一下重载和重写的区别。

相关文章

  • Unity 面试题汇总(一)

    C#语言基础 1.重载和重写的区别 1) 封装、继承、多态所处位置不同,重载在同类中,重写在父子类中。 ...

  • 02.Java面向对象问题

    目录介绍 2.0.0.1 重载和重写的区别?重载和重写绑定机制有何区别?父类的静态方法能否被子类重写? 2.0.0...

  • 【C#】重写和重载的区别

    导读:学习C#的时候,其实没想那么多的。就想着把视频看完,把例子做一下就好了,其实真心不懂那些玩意儿是什么,就好像...

  • 方法重载与方法重写(@Overload @Override)

    java方法重载和方法重写(方法覆盖)的区别: 方法重载: Overload 方法重写: Override 批判,...

  • 5.Java重载和重写的区别

    Java 方法重载和方法重写的区别有哪些? 解析:先明白重载和重写的定义。 一、方法重写(0verride) 在J...

  • c#中的重载和重写区别

    重载的条件: 1.必须在同一个类中2.方法名必须相同3.参数列表不能相同。 重写的条件: 1. 在不同的类中 ...

  • JAVA方法重载与方法重写辨析

    一、重载(overload)和重写(override)的区别?重载的方法能否根据返回类型进行区分? 方法的重载和重...

  • Java面试题

    1、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分? 答:方法的重载...

  • 跳槽字节跳动社招Java面试分享

    Java基础 1、重载和重写的区别。 2、String 和 StringBuffer、StringBuilder ...

  • java学习笔记

    1.方法重载和重写 方法重写与方法重载的区别 2.访问修饰符 访问权限 类 包 子类 其他包 ...

网友评论

    本文标题:【C#】重写和重载的区别

    本文链接:https://www.haomeiwen.com/subject/iufmlftx.html