注册
 找回密码
 注册
江西广告网
查看: 333|回复: 0
打印 上一主题 下一主题

Java语言基础10-方法重载

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2009-2-9 09:48:06 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
但是,不是所有的狗(dog)叫声一样,因此为了在 Dog 的实现中添加一些不同的叫法(bark),我们需要定义另一个 bark() 方法来接受用 string 表示的叫声: class Dog { void bark() { System.out.println("Woof."); } void bark(String barkSound) { System.out.println(barkSound); } } Dog 这样写也是正确的,虽然程序中有两个 bark() 方法,但它们的方法标记不同,Java(TM) 解释器能正确选择该调用哪个方法。方法定义 "void bark(String barkSound)" 表明其与 bark() 不同,它能接受一个 String 类型的参数 barkSound. 另一个方法重载的例子:DogChorus,它创建了两个狗(dog)的实例 并为每个狗(dog) 设定了不同的吠叫(bark)行为 : public class DogChorus { public static void main(String[] args) { Dog fido = new Dog(); Dog spot = new Dog(); fido.bark(); spot.bark("Arf. Arf."); fido.bark("Arf. Arf."); System.exit(0); } } 由于 Dog 支持两种不同的吠叫(bark)行为,都以 bark() 命名,我们就可将程序设计成让 fido 做出两种行为。在 DogChorus 中,对 fido 和 spot 我们调用不同的 bark 行为。注意 fido 在它听到 spot 的叫声(bark)后,改变了自己的叫声(bark)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表