[ λ©μλ μ€λ²λ‘λ©(overloading) ]
[ λ©μλ μ€λ²λ‘λ© ]
- κ°μ μ΄λ¦μ λ©μλλ₯Ό μ€λ³΅ μ μνλ κ²
- μλ°μμλ λ³Έλ ν ν΄λμ€ λ΄μμ μ€λ³΅ λ©μλλ₯Ό μ§λ μ μμ§λ§,
λ§€κ°λ³μμ κ°μ νΉμ νμ μ λ€λ₯΄κ² μ μν κ²½μ° λμΌν μ΄λ¦μΌλ‘ μ€λ³΅ μ μ κ°λ₯
- λ©μλ μ€λ²λ‘λ©μ λ€νμ±μ ꡬννλ λ°©λ² μ€ νλμ
- λ©μλ μ€λ²λ‘λ©μ 쑰건
· λ©μλλͺ μ΄ κ°μμΌ ν¨
· λ©μλ λ§€κ°λ³μμ κ°μκ° λ¬λΌμΌ ν¨.
· λ©μλ λ§€κ°λ³μμ νμ μ΄ λ¬λΌμΌ ν¨.
· λ©μλμ λ°ν(return)νμ μ€λ²λ‘λ© κ΅¬λΆμ μ¬μ©νμ§ μμ(λ°ν νμ κ³Ό κ΄κ³ x)
[ λ©μλ μ€λ²λ‘λ© μμ ]
class Animal{
public static void printAnimal() {
System.out.printf("λ©μλ νΈμΆ [λ§€κ°λ³μ : x]\n");
}
public static void printAnimal(String animal) {
System.out.printf("λ©μλ νΈμΆ [λ§€κ°λ³μ : %s]\n", animal);
}
public static void printAnimal(String animal, String animal2) {
System.out.printf("λ©μλ νΈμΆ [λ§€κ°λ³μ : %s, %s]\n", animal, animal2);
}
}
public class TestCode {
public static void main(String[] args) {
Animal.printAnimal();
Animal.printAnimal("κ³ μμ΄");
Animal.printAnimal("λ―Έμ΄μΊ£", "λ«μνλ€");
}
}
/* [μΆλ ₯ κ²°κ³Ό]
λ©μλ νΈμΆ [λ§€κ°λ³μ : x]
λ©μλ νΈμΆ [λ§€κ°λ³μ : κ³ μμ΄]
λ©μλ νΈμΆ [λ§€κ°λ³μ : λ―Έμ΄μΊ£, λ«μνλ€] */
[ λ©μλ μ€λ²λΌμ΄λ©(method overriding) ]
[ λ©μλ μ€λ²λΌμ΄λ© ]
- μ€λ²λΌμ΄λ©μ΄λ μμ κ΄κ³μ μλ λΆλͺ¨ ν΄λμ€μμ μ΄λ―Έ μ μλ λ©μλλ₯Ό
νμμ λ°λΌ μμ ν΄λμ€μμ μ¬μ μ νλ κ²
- λΆλͺ¨ ν΄λμ€μμ μμλ°μ λ©μλλ₯Ό μ¬μ¬μ© κ°λ₯ν κ°λ ₯ν μΈν°νμ΄μ€λ‘μ μ¬μ© κ°λ₯
- λ©μλ μ€λ²λΌμ΄λ© 쑰건
· μΈμ€ν΄μ€ λ©μλμΌ κ²(staticμΌλ‘ μ μΈx)
· λ©μλμ μ΄λ¦κ³Ό κ°μκ° μΌμΉν΄μΌ ν¨ (μ μΈλΆ μΌμΉ)
· λ§€κ°λ³μ κ°κ°μ μλ£νμ΄ μΌμΉν κ²
· λ©μλμ λ°ννμ΄ μΌμΉν κ²
· λ©μλμ μ κ·Ό μ μ΄μκ° public λλ protectedμΌ κ² (private λΆκ°)
[ λ©μλ μ€λ²λΌμ΄λ© μμ ]
class Animal{
public void printAnimal() {
System.out.printf("λ©μλ νΈμΆ [λ§€κ°λ³μ : x]\n");
}
}
// Animal ν΄λμ€λ₯Ό μμλ°λ Mammalia ν΄λμ€
class Mammalia extends Animal{
// λ©μλ μ€λ²λΌμ΄λ©
public void printAnimal() {
System.out.println("λ©μλ μ€λ²λΌμ΄λ© 1");
}
}
public class TestCode {
public static void main(String[] args) {
Mammalia mm = new Mammalia();
mm.printAnimal();
}
}
/* [μΆλ ₯ κ²°κ³Ό]
λ©μλ μ€λ²λΌμ΄λ© 1 */