A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 派大星 中级黑马   /  2012-2-18 09:57  /  2280 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

除了参数个数不一样.还有其他条件可以构成方法的重载吗?

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

7 个回复

倒序浏览
方法参数个数或者方法参数的类型不一样,都可以构成重载

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
在面对对象这样的高级语言中都允许我们在一个类中定 义多个方法名相同、方法间参数个数和参数顺序不同的方法,对于参数个数不同或者参数列 表不同的情况我们称之为参数列表不同。需要注意的是这里没有提到方法的返回值。也就是 决定方法是否构成重载有两个条件:
(1)在同一个类中;
(2)方法名相同;
(3)参数列表不同。

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
参数列表不同, 如  
void GetNum(){}
void GetNum(int i){}
void GetNum(int i,int j)  {}
.......
都可以构成载都是重载

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
参数个数或者类型不能都可以构成重载:
如:public void GetResult(int a,int b)
       public void GetResult(float a,float b )
       public void GetResult(int a)都是方法重载
但是有无返回值却不是构成方法重载的条件

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
参数类型或参数个数不同都可以构成重载~~

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
曹停 中级黑马 2012-2-18 21:16:17
7#
重载
1.方法名称一定要一样。如果不一样,就是两个不同的方法,不能称为重载;
public void Demo();
public void Demo(int age);         重载
2.传入的参数类型一定要不一样。因为电脑需要用参数类型判断调用哪个方法;
public void Demo(int i);
public void Demo(int j);           非法重载
因为参数名称虽然不同,但是类型一样。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
方法重载要参数的个数和类型不一样才能构成方法重载
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马