How to avoid large if-statements and instanceof

前端 未结 9 2366
盖世英雄少女心
盖世英雄少女心 2020-11-29 05:11

Animal

public abstract class Animal {
 String name;

 public Animal(String name) {
  this.name = name;
 }

}

Lion<

9条回答
  •  [愿得一人]
    2020-11-29 06:16

    Animal

    public abstract class Animal {
     String name;
    
     public Animal(String name) {
      this.name = name;
     }
    
     public abstract void exhibitNaturalBehaviour();
    
    }
    

    Lion

    public class Lion extends Animal {
    
     public Lion(String name) {
      super(name);
     }
    
     public void exhibitNaturalBehaviour() {
      System.out.println("Roar");
     }
    }
    

    Deer

    public class Deer extends Animal {
    
     public Deer(String name) {
      super(name);
     }
    
     public void exhibitNaturalBehaviour() {
      System.out.println("Running...");
     }
    
    }
    

    TestAnimals

    public class TestAnimals {
     public static void main(String[] args) {
    
      Animal[] animalArr = {new Lion("Geo"), new Deer("D1"), new Deer("D2")};
      for (Animal a : animalArr) {
         a.exhibitNaturalBehaviour();    
      }
    
     }
    }
    

提交回复
热议问题