黑马程序员技术交流社区

标题: 类的 继承 重载 多态 重构 [打印本页]

作者: 赵力    时间: 2012-6-19 08:50
标题: 类的 继承 重载 多态 重构
  谁能给 形象的 说下 继承 重载 多态  重构 这几个概念   总是觉得有点看不清楚。:(
作者: 吴伟烈    时间: 2012-6-19 14:29
继承 是面向对象最重要的特征之一,任何类都可以从另一个类继承,这就是说这个类拥有它继承类的所有成员
继承的类叫子类,被继承的叫父类
一个类的子类拥有父类的所有公共属性
例如有一个汽车类,它有轮子,发动机,方向盘这些属性,汽车类派生了一个子类公交车,公交车也就拥有了轮子这些属性
这样可以节省大量的代码

方法的重载指在一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法。
参数可以是类型不同,也可以是个数不同
例如在一个类中有以下两个方法
public void com(int i){...}
public void com(string str){...}
然后调用这两个方法
com(1);//调用的是第一个方法
com("suidafd")调用的是第二个方法

在面向对象语言中,接口的多种不同的实现方式即为多态。
比如有一个父类superClass,它有2个子类subClass1,subClass2。superClass有一个方法func(),
两个子类都重写了这个方法。那么我们可以定义一个superClass的引用obj,让它指向一个子类的对象
比如superClass obj = new subClass1();
那么我们调用obj.func()方法时候,会进行动态绑定,也就是obj它的实际类型的func()方法,即subClass1的func()方法。
同样你写superClass obj = new subClass2();obj.func()其实调用的是subClass2的func()方法。
这种由于子类重写父类方法,然后用父类引用指向子类对象,调用方法时候会进行动态绑定,这就是多态。
多态对程序的扩展具有非常大的作用,比如你要再有一个subClass3,你需要改动的东西会少很多,要是使用了配置文件那就可以不动源代码了。
重载也是多态实现的方式之一

重构(C#)
重构是在编写代码后在不更改代码的外部行为的前提下通过更改代码的内部结构来改进代码的过程。
这个不太懂,只知道这么个概念
作者: 赵力    时间: 2012-6-19 15:03
吴伟烈 发表于 2012-6-19 14:29
继承 是面向对象最重要的特征之一,任何类都可以从另一个类继承,这就是说这个类拥有它继承类的所有成员
继 ...

讲的很清晰  谢谢。。。。:)
作者: 许庭洲    时间: 2012-6-19 15:18
1,继承是子类获得父类的成员;
2,重写是继承后重新实现父类的方法;
3,重载是在一个类里一系列参数不同名字相同的方法;
4,多态有动态多态和静态多态两种,比如方法的重载就是静态多态,在继承中的派生类中对父类的方法的重写就是动态的多态;
5,重构是指在不改变已有代码逻辑的基础上,对代码的解构进行调整,增强代码的可读性、降低冗余、增加健壮性、可扩展能力等。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2