多态
如果子类和父类的方法名重名了,会报绿线,如何把绿线干掉?
第一种方法,我们可以在子类的方法的访问修饰符后面加new 绿线没了,可以解决
图一、加new
加new是把父类当中的方法隐藏
第二种方法,我们可以在父类的方法上加一个virtual 然后 子类在继承父类的时候,可以用override来重写父类的方法;
图二、方法的重写
虚方法重写
- 方法不能用static修饰
- 方法重写与基类的签名必须一致
- 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 |