IT/Java

Java - 오버로딩, 오버라이딩, 인터페이스

노마드오브 2018. 11. 24. 19:34

public class Dragoon implements StarcraftUnit {

String name = "드라군";

@Override

public String getName() {

return name;

}

}




public class Hydra implements StarcraftUnit {

String name = "히드라";

@Override

public String getName() {

return name;

}

}




public class Zealot implements StarcraftUnit {

String name = "질럿";


@Override

public String getName() {

return name;

}

}





public class MainApp {


//z -> d 공격

static void attack(StarcraftUnit u1, StarcraftUnit u2) {

System.out.println(u1.getName()+"이 "+u2.getName()+"을 공격하였습니다.");

}


// // 오버로딩의 한계 //d -> z 공격

// static void attack(Dragoon u1, Zealot u2) {

// System.out.println(u1.name+"이 "+u2.name+"을 공격하였습니다.");

// }

public static void main(String[] args) {

Zealot z1 = new Zealot();

Dragoon d1 = new Dragoon();

attack(z1, d1);

attack(d1, z1);

}


}




interface StarcraftUnit {

public String getName();

}