
package ex06.example06; class Protoss { // public void attack() { // } // 이렇게 부모가 들고 있으면 오버라이딩 해서 쓸 수 있는데 이게 없다면? }; class Zealot extends Protoss { public void attack() { System.out.println("질럿이 공격합니다."); } }; class Dragoon extends Protoss { public void attack() { System.out.println("드라군이 공격합니다."); } }; public class CastingEx01 { public static void start(Protoss p) { if (p instanceof Zealot) { Zealot u = (Zealot) p; // 부모를 자식에게 대입할 수 없다. u.attack(); } if (p instanceof Dragoon) { Dragoon u = (Dragoon) p; // p가 u보다 더 큰거라 깎아서 들어가야 해. u.attack(); } } public static void main(String[] args) { start(new Zealot()); start((new Dragoon())); } };
Share article