c#重载和重写及运用
c#重载和重写及运用
重写的条件:
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#重载和重写及运用相关推荐
- java中重载与重写的区别
最近了解一下重载和重写 一.重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading ...
- java中的重载和重写
1.重载:可以在同一个类中存在多个函数,函数名称相同但参数列表(参数个数,参数类型,参数顺序)不同, 不能通过方法返回值类型,访问权限以及抛出异常来定义重载. 2.重写: "重写(覆盖)&q ...
- 方法的重载与重写_java基础知识之重载和重写
重载(Overloading)和重写(Overriding)是Java中两个比较重要的概念 重载 简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间, ...
- Java_重载与重写
在java中,重载与重写都是多态的体现.重载(Overload)体现的是编译时多态,而重写(Override)体现了运行时多态. 重载(Overload): 定义:在一个类中,同名的方法如果有不同的参 ...
- Java——重载和重写
前言 在程序设计中经常会遇到对对方法的重载或者重写,下面将介绍重载和重写. 重载(Overloade) 重载出现的原因 任何程序设计语言都具备的一项重要特性就是对名字的运用.当创建一个对象时,就给对象 ...
- 什么是重载or重写,二者的区别是?
目录 1.重写 2.重载 3.重载(Overload) 和重写(Override) 的区别? 1.重写 重写必须满足如下条件: (1)方法的返回值类型必须相同. (2)方法的参数个数必须相同. (3) ...
- java重载与重写的区别你懂了吗
目录: 1.重载 2.重写 1.重载 (1) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. (2)重载的特点: 1.方法名要一样,但是参数类型或个 ...
- java构造方法重载_Java 重载、重写、构造函数的实例详解
Java 重载.重写.构造函数的实例详解 方法重写 1.重写只能出现在继承关系之中.当一个类继承它的父类方法时,都有机会重写该父类的方法.一个特例是父类的方法被标识为final.重写的主要优点是能够定 ...
- 二十三、Java类中重载和重写的区别
@Author:Runsen @Date:2020/5/31 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排 ...
- java编译时多态和运行时多态_运行时多态、编译时多态和重载、重写的关系(不区分Java和C#,保证能看懂!)...
以前在大学学习OOP的时候,知道了重载和重写的区别,但如果要把他们和多态联系起来,我想很多新手朋友和我当初一样是死记的,可是时间长了,自然而然就忘记了,最近在写测试的时候,终于"开窍&quo ...
最新文章
- snort完整安装(snort-2.8.3.1)
- ftime()函数的用法----算函数运行时间
- 为啥阿里巴巴规定要在 @Transactional 指定 rollbackFor?
- linux虚拟内存当硬盘,linux里面虚拟内存和swap有什么不同?
- 不想跑数了,数据分析师的前途在哪里?
- python之函数名称空间,作用域,嵌套函数
- spark中的println失效问题解决
- Hibernate延时加载
- 在MacOSX上重新安装Python (10.8) python 自然语言处理的前戏
- Node.js的基本使用3
- pku 1611 The Suspects 并查集的应用
- 什么是JDK JRE JVM?
- 去除 火狐浏览器自动给域名前加 www.
- 【完结】囚生CYの备忘录(20220906-20221120)
- 学英语尽量不要从背词汇表开始
- 使用medusa进行ssh爆破
- 键盘哪个键是锁定计算机,键盘锁是哪个键 锁键盘的是哪个键 - 云骑士一键重装系统...
- 阅读笔记20141202
- 发字的楷书写法图片_永字八法”楷书笔画用笔技巧的方法(附书法图)
- java获取指定日期的所在周的第一天(周一)