package doubleDisp;

public class SpiderAv extends Avatar {

	public void buy(Knife k) {
		System.out.println("Spider bought a knife");
	}

	public void buy(Sword s) {
		System.out.println("Spider bought a sword");
	}

	public static void main(String args[]) {
		Avatar a1 = new Avatar();
		Avatar a2 = new SpiderAv();
		SpiderAv sa = new SpiderAv();
		Knife k = new Knife();
		Sword s = new Sword();
		Knife ks = new Sword();
		System.out.println("a1");
		a1.buy(k);
		a1.buy(s);
		System.out.println("a2");
		a2.buy(k);
		a2.buy(s);
		System.out.println("sa");
		sa.buy(k);
		sa.buy(s);
		System.out.println("And what about?");
		a1.buy(ks);
		a2.buy(ks);
		sa.buy(ks);
		System.out.println("\nWith double dispatch:\n");
		ks.isBoughtBy(a1);
		ks.isBoughtBy(a2);
		ks.isBoughtBy(sa);
	}
}
