Skip to content

Instantly share code, notes, and snippets.

@mrjohannchang
Created May 23, 2013 15:45
Show Gist options
  • Save mrjohannchang/5637045 to your computer and use it in GitHub Desktop.
Save mrjohannchang/5637045 to your computer and use it in GitHub Desktop.
//Dog.java
public class Dog extends Animal {
public final String mMyString = "bark";
@Override
public void doSomething() {
System.out.print(mMyString);
}
}
//Animal.java
public abstract class Animal {
public abstract void doSomething();
}
//Cat.java
import java.util.ArrayList;
import java.util.List;
public class Cat extends Animal {
Cat() {
mMyList.add("Meow!");
mMyList.add("Meow!!");
mMyList.add("Meow!!!");
}
public List<String> mMyList = new ArrayList<String>();
@Override
public void doSomething() {
for (String element : mMyList) {
System.out.print(element);
}
}
}
//Host.java
import java.util.ArrayList;
import java.util.List;
public class Host {
public static void main(String[] args) {
new AnimalCaster().run();
}
}
//AnimalCaster.java
import java.util.ArrayList;
import java.util.List;
public class AnimalCaster {
private Animal mCat = new Cat();
private Animal mDog = new Dog();
private List<Animal> mAnimalList = new ArrayList<Animal>();
AnimalCaster() {
mAnimalList.add(mCat);
mAnimalList.add(mDog);
}
public void run() {
for (Animal a : mAnimalList) {
System.out.print("\n-- begin --\n");
a.doSomething();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment