多态

本文详细介绍了在C#编程中遇到子类与父类方法重名时,通过使用new关键字和virtual关键字及override实现方法隐藏与重写的原理与步骤。同时,文章还讲解了抽象类与抽象方法的概念,以及它们在代码组织中的作用。最后,通过对比虚方法与抽象方法的特点,帮助开发者理解C#面向对象编程的核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

多态

如果子类和父类的方法名重名了,会报绿线,如何把绿线干掉?

第一种方法,我们可以在子类的方法的访问修饰符后面加new 绿线没了,可以解决

 

图一、加new

加new是把父类当中的方法隐藏

第二种方法,我们可以在父类的方法上加一个virtual 然后 子类在继承父类的时候,可以用override来重写父类的方法;

 

图二、方法的重写

 虚方法重写

  1. 方法不能用static修饰
  2. 方法重写与基类的签名必须一致
  3. Virtual不能与private一起使用

 

抽象类和抽象方法:

 

如果类中有一个方法加上了abstract ,那么这个方法叫抽象方法,而且,抽象方法没有方法体;同时那么这个方法所在的这个类也必须要用abstract来修饰,那么这个类就变成了抽象类;

 

抽象类 不能被实例化;

如果一个类继承了抽象类,那么,这个类中的方法,必须要重写父类的抽象方法;

 

 

图三、抽象类和抽象方法

 

 Override与重载(overload)的区别

重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要。重载(overload)是面向过程的概念。

 

Override是进行基类中函数的重写。Override是面向对象的概念。

重写和重载不一样 要区分开

 

 

图四、虚方法抽象方法比较

 

 

图五、接口的简单介绍

  这段知识本文介绍的较为基础,那么我们在后面将有更加细致的文章,为追求更高层次的朋友服务。大家也可以把自己学习这段知识的心得体会放在文章的帖子中。也希望我们相互提高。

作者近期文章列表:

C#基础教程(完全免费,献给代码爱好者的最好礼物。注:本作者分享自己精心整理的C#基础教程,无任何商业目的。希望与更多的代码爱好者交流心得,也请高手多多指点!!!)
面向过程三种循环的比较
C#中的方法(上)
我们常见的数组
面向对象思想的转变
C#中超级好用的类
C#中析构函数和命名空间的妙用
C#中超级好用的字符串
C#中如何快速处理字符串
值类型和引用类型及其它
ArrayList和HashTable妙用一
ArrayList和HashTable妙用二
文件管理File类
GDI+这些年我收集的GDI+代码
这些年我收集的GDI+代码2
HTML概述你不能忽视的HTML语言
你不能忽视的HTML语言2精编篇
你不能忽视的HTML语言3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值