再谈重载

方法的重载

当创建一个对象时,也就给此对象分配到尺寸空间取了一个名字。所谓方法,则是给某个动作取得名字。通过使用名字,则可以引用所有的对象和方法。名字取的好可以使系统更加易于理解和修改。
在日常生活中,相同的词可以表达多种不同的含义——他们被“重载”了。特别是含义之间的差距很小的时候,这种方式十分有用。

在java(和c++)里,构造器是强制重载方法名的另一种原因。既然构造器的名字由类名所决定。那么就只能有一个构造器名。
如果要想用多种方式创建一个对象。假设要创建一个类,既可以用标准方式进行初始化,也可以从文件里读取信息来初始化,这就需要两个构造器:

  • 1.一个默认构造器
  • 2.另一个取字符串作为形式参数—该字符串表示初始化对象所需要的文件名称

由于都是构造器,所以他们必须有相同的名字,即类名。为了让方法名相同而形式参数不同的构造器同时存在,必须用到方法重载。同时,尽管方法重载是构造器所必需的,但它也可以应用于其他方法,且用法同样方便。

重载的构造器和重载的方法示例

class Tree{
	int height;
	Tree(){
		print("Planting a seedling");
		height = 0;
	}
	Tree(int initialHeight){
		height = initialHeight;
		print("Creating new Tree that is "+height+"feet tail");
	}
	void info(){
		print("Tree is "+height+"feet tail");
	}
	void info(String s){
		print(s +":Tree is "height+"feet tail");
	}
}
public class Overloading(){
	public static void main(String[] agrs){
		for(int i=0;i<5;i++){
			Tree t = new Tree(i);
			t.info();
			t.info("overloaded method");
		}
		new Tree();
	}
}

有了方法重载,可以为两者使用相同的名字

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值