首页 新闻 会员 周边 捐助

面向对象中的重载

0
[已解决问题] 解决于 2017-08-17 22:58

谁能给我解释一下面向对象中的重载啊?还有他的好处,和怎么用?

思凡大侠的主页 思凡大侠 | 菜鸟二级 | 园豆:202
提问于:2017-08-10 20:43
< >
分享
最佳答案
0

编程思想:重载 叫过载,是指在一个类中具有相同的方法名称,但是参数列表不同(包括多个参数情况下参数顺序不同,但这种情况导致代码难以维护)的情况。

一个类中可以表示为多个不同的构建器,默认构造器和带参构造器,从而新建不同的对象。如下:Tree可以是一颗种子;也可以是一颗发芽的种子

class Tree{

int height;

      Tree(){

   }

      Tree(int i){

     height = i;

}

}

Tree t1 = new Tree();

Tree t2 = new Tree(2);

当然这种情况适用于任何方法。例如:

say(参数类型 汉语){}

say(参数类型 英语){}

我们可以说"你好",也可以说“hello”,使用的是相同的方法名say。

另外

void f(){}

int f(){}

我们只关心方法的调用,忽略返回结果时,如果调用f(),别人无法理解是哪个f,因此不能根据方法的返回值类型来区分过载的方法。

奖励园豆:5
wangzySKy | 菜鸟二级 |园豆:287 | 2017-08-10 23:59
其他回答(5)
0

重载 不是面向对象的事情.

重写 才是面向对象的事情.

以前的语言函数的签名就是函数名.支持重载的语言.函数的签名除了函数名还包括参数列表

签名=标识

吴瑞祥 | 园豆:29449 (高人七级) | 2017-08-10 21:18
0

概念性的理解就是,方法名相同,参数或参数类型不同,多次重载,适应不同的要求。是属于(面向过程)

得意洋洋~ | 园豆:254 (菜鸟二级) | 2017-08-10 22:15
0

重载是一个类内部实现相同机理的操作,但是操作的对象不同。主要体现在:

  1.  方法在同一个类中
  2. 重载的方法名称相同
  3. 参数不同(参数的类型不同,参数的个数不同)
  4. virtual关键字可有可无

转自:http://blog.csdn.net/longshengguoji/article/details/17691913

金琥 | 园豆:2605 (老鸟四级) | 2017-08-11 08:49
0

重载通常可以分为方法重载和运算符重载,实现多态的方式之一是重载,而重载和多态无关,参考:http://www.cnblogs.com/jeffwongishandsome/archive/2009/05/16/1447459.html

JeffWong | 园豆:2328 (老鸟四级) | 2017-08-11 10:44
0

重载就是构造方法名称相同,参数不同,个数也可以不同

超重语言 | 园豆:237 (菜鸟二级) | 2017-08-11 15:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册