Chinaunix首页 | 论坛 | 博客
  • 博客访问: 783379
  • 博文数量: 738
  • 博客积分: 7000
  • 博客等级: 少将
  • 技术积分: 5000
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-12 09:00
文章分类

全部博文(738)

文章存档

2011年(1)

2008年(737)

我的朋友

分类:

2008-09-12 09:09:15

    但是,不是所有的狗(dog)叫声一样,因此为了在 Dog 的实现中添加一些不同的叫法(bark),我们需要定义另一个 bark() 方法来接受用 string 表示的叫声:


    class Dog {
      void bark() {
        System.out.println("Woof.");
      }

      void bark(String barkSound) {
        System.out.println(barkSound);
      }
    }
    Dog 这样写也是正确的,虽然程序中有两个 bark() 方法,但它们的方法标记不同,(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)。

 

【责编:landy】

--------------------next---------------------

阅读(667) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~