package test;
class Zealot{
int hp = 100;
int attack = 10;
}
class Dragoon {
int hp = 100;
int attack = 20;
}
public class Test {
// 질럿 -> 드라군
static void attack(Zealot z, Dragoon d) {
d.hp = d.hp - z.attack;
System.out.println("드라군이 공격당했습니다");
}
public static void main(String[] args) {
Zealot z1 = new Zealot();
Dragoon d1 = new Dragoon();
attack(z1, d1);
}
}
public class Test {
// 질럿 -> 드라군
static void attack(Zealot z, Dragoon d) {
d.hp = d.hp - z.attack;
System.out.println("드라군이 공격당했습니다");
}
**// 드라군 -> 질럿
static void attack2(Dragoon d, Zealot z) {
z.hp = z.hp - d.attack;
System.out.println("질럿이 공격당했습니다");
}**
public static void main(String[] args) {
Zealot z1 = new Zealot();
Dragoon d1 = new Dragoon();
attack(z1, d1);
}
}
이런식으로 함수의 이름이 계속해서 바뀐다면?
사용자 입장에서는 모든 함수의 이름을 알고 있어야하는 불편이 따른다
→ 함수의 이름은 통일하고, 안에 들어오는 매개변수의 타입만 다르게 하는것
⇒ 오버로딩
System.out.println("질럿이 공격당했습니다");
// System : 클래스
// println : 여기에도 다양한 타입이 들어올 수 있음 (오버로딩 되어있음)