重载,重写,重构
来源:互联网 发布:js数组方法大全 编辑:程序博客网 时间:2024/05/22 06:41
验项目的时候师傅问到重载,重写,重构都是什么,重载隐约还知道怎么回事,可是重写,重构就不知道了,下来后翻书找了找,上网查了查,总算弄明白了。
重载:
方法的重载提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型。看个例子就懂了:
class Cat { private string name = ""; public Cat(string name) { this.name = name; } public Cat() //将构造方法重载 { this.name = "无名"; } public string Shout() { return "我的名字叫" + name + "喵"; } }
重写:
子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
举例:动物类存在"跑"的方法,从中派生出马和狗,马和狗的跑的形态是各不相同的,因此同样方法需要两种不同的实现,这就需要"重新编写"基类中的方法。"重写"基类方法就是修改它的实现或者说在派生类中重新编写。
重构:
猫和狗继承动物类,但是他们都有“叫”这个方法,除了叫的声音不一样之外,其余的都是一样的,这样造成了代码的重复,如果要修改这个方法得同时修改这两个子类,非常的麻烦。这时候重构就起了很重要的作用。它将重复的代码提到父类,再加一个获得叫的方法就可以了。具体实现如下:
class Animal{ //将共有代码提到父类 protected override void shout() { return getShoutSound(); } //获得声音的方法 protected virtual string getShoutSound() { return ""; }}//类猫继承动物class Cat : Animal{ Protected override string getShoutSound() { return "喵" }}//狗类继承动物class Dog:Animal{ Protected override string getShoutSound() { return "旺" }}
总结:
欠下的总是要还的。之前学习的时候没有总结,现在还是来总结了,通过重拾设计模式这个大boss,知道了他们之间微妙的区别,希望这篇博客能帮到您。
0 0
- 重构&重载&重写
- 重构、重写、重载
- 重载,重写,重构
- 重构 重写 重载
- 重载、重构和重写
- 【C#】重载重写重构
- 重写、重载和重构
- 【C#】重构、重载&重写
- 覆盖(重写),重构,重载的区别
- overrid,overLoading /重写 重构,覆盖,重载
- java中的重载、重写与重构
- 重写(覆盖),重构,重载
- 重构,重写(覆盖)与重载
- C#之重载、重构、重写
- java中的重载、重写与重构
- 重载、重写、重定义
- 重写,重载,重定义
- 重写重载重定义
- ionic框架popover组件<ion-popover-view>的滚动问题
- 微信开放平台上创建安卓应用,要求提供“应用签名”,如何获取?
- Read file from inside a JAR file
- 获取时间的方法及常用时间类
- Android:全屏或者取消标题栏
- 重载,重写,重构
- 自定义ViewGroup之流式布局
- cordova build 报错:failed to notfy projectevluationlistener.afterevaluate<>.
- nyoj586 poj2456二分+贪心
- OpenCV3 install tutorial for Mac
- 多数据源动态制定 Druid数据源与Spring 关联 监控
- GCJ--Minimum Scalar Product (2008 Round 1AA)
- 广师Android群分享之四大组件及fragment,handler
- 码农上海工作2年感悟