9. สร้างใหม่จากเก่า

The Camtasia Studio video content presented here requires JavaScript to be enabled and the latest version of the Macromedia Flash Player. If you are you using a browser with JavaScript disabled please enable it now. Otherwise, please update your version of the free Flash Player by downloading here.

 
รหัสที่ 9-15  การใช้ instanceof และ downcast ในคลาส Animal, Dog, และ Basenji
public class Animal {
  public static void makeSound(Animal[] a) {
    for(int i=0; i<a.length; i++) {
      if (a[i] instanceof Dog){
        Dog d = (Dog) a[i];
        d.bark();
      } else if (a[i] instanceof Cat) {
        Cat c = (Cat) a[i];
        c.meow();
      }
    }
  }
  //...
public class Dog extends Animal {
  public void bark() {
    System.out.println("โฮ่ง ๆ");
  }
  //...
public class Cat extends Animal {
  public void meow() {
    System.out.println("เหมียว ๆ");
  }
  //...
public class Basenji extends Dog {
  public void bark() {
    System.out.println("...");
  }
  public void hunt(Animal a) {...}
  //...
©2009 S.Prasitjutrakul