C#——重写与抽象类
2015-12-20 16:03
351 查看
概述
前几天,看了一个电影叫《教父3》,教父其实就是黑帮老大,他的儿子继承了他的位置,成为新的教父。小教父和老教父干的活差不多,都是经营他们的大家族,但是小教父努力使他们经营的产业走向和非法化,这就是他和他父亲的区别。这和我们学的重写很像,重写就是调用一个方法,实现不同的行为。
详细介绍(重写)
子类想用父类的方法,但是要做一些修改,这就用到了重写。子类的方法名可以和父类的方法名重名,但是会出现一条绿线,解决方法有两个。
一:在子类方法的修饰符后面加new就解决了
new是把父类中的方法隐藏了。
二:用重载
在父类的方法的修饰符后面加virtual;
在子类中重写父类的方法,加上override,可以更换父类方法里的内容。
Tips:虚方法与重写
1.方法不能用static修饰。
2.方法重写与基类的签名必须一致。
3.virtual不能与private一起使用。
比较
一、虚方法VS抽象方法二、抽象方法VS抽象类
1. 抽象方法和抽象类都用abstract修饰;
抽象方法必须在抽象类中;
抽象方法没有方法体;
2. 抽象类无法被实例化
父类是抽象类,子类继承了这个类,必须把抽象类中的抽象方法重写。
三、重写(override)VS重载(overload)
1.重载:方法的名称相同,参数个数或参数类型不同。是面向过程的概念。
2.重写:不同对象收到相同消息时,会产生不同的行为。
总结
重写就实现了面向对象中的多态。子类不只是对父类纯粹的继承,对父类的东西做了修改或添加了新的功能,是父类的一个变体。这样继承增加了面向对象的复用性而多态增强了灵活性。相关文章推荐
- C#基础之——C#总观
- C#如何彻底关闭应用程序及附属线程
- [No00006F]总结C#获取当前路径的各种方法
- C#之异步编程
- C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)
- C#的async和await
- C#_StreamReader读取文本文件
- 笔记<c# 调用DLL解密密文>
- C#_FileStream读取文本文件和二进制文件
- 【个人笔记】CLR Via C# 第一章 CLR执行模型
- 【个人笔记】CLR Via C# 第一章 CLR执行模型
- C和C#的区别
- C#高级编程技术复习一
- c#日期格式转换大全
- EF三种编程方式详细图文教程(C#+EF)之Code First
- EF三种编程方式详细图文教程(C#+EF)之Model First
- C#代码实现对AES加密解密
- EF三种编程方式详细图文教程(C#+EF)之Database First
- C# 获取字符串对应变量名
- IOC设计模式C#