Java
μ€λ²λ‘λ©(Overloading)κ³Ό μ€λ²λΌμ΄λ©(Overriding)
KJihun
2023. 6. 9. 19:02
728x90
π μ€λ²λ‘λ© (Overloading)
κ°μ μ΄λ¦μ λ©μλλ μμ±μλ₯Ό λ§€κ°λ³μλ§ λ€λ₯΄κ² μ¬λ¬ κ° μ μνλ κ²
- κ°μ μ΄λ¦μ λ©μλλ₯Ό μ¬λ¬ κ° μ μν μ μλ€.
- λ¨, λ§€κ°λ³μμ κ°μ, νμ , μμ μ€ νλ μ΄μμ΄ λ¬λΌμΌ νλ€.
- νΈμΆ μ μ»΄νμΌλ¬κ° μ λ¬λ μΈμλ₯Ό λ°νμΌλ‘ μ΄λ€ λ©μλλ₯Ό νΈμΆν μ§ νλ¨νλ€.
- κ°λ μ±κ³Ό μΌκ΄μ±μ λμΌ μ μμ΄ λ§€μ° μ μ©νλ€
//μ€λ²λ‘λ© μμ
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
κ°μ addλΌλ μ΄λ¦μ΄μ§λ§, μΈμμ νμ /κ°μκ° λ¬λΌμ κ°κ° λ€λ₯Έ λ©μλλ‘ μΈμλλ€.
π μ€λ²λΌμ΄λ© (Overriding)
μμ ν΄λμ€μ λ©μλλ₯Ό νμ ν΄λμ€μμ μ¬μ μνλ κ²
- μμ κ΄κ³μμ λ°μνλ κ°λ μ΄λ€.
- νμ ν΄λμ€κ° λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό λμΌν λ©μλ μκ·Έλμ²λ‘ λ€μ μ μνλ€.
- κΈ°μ‘΄ λμμ λ³κ²½νκ±°λ νμ₯ν μ μλ€.
- @Override μ΄λ Έν μ΄μ μ λΆμ¬μ£Όλ κ²μ΄ μ’λ€. (μ»΄νμΌ νμ μ²΄ν¬ κ°λ₯)
//μ€λ²λΌμ΄λ© μμ
public class Animal {
public void makeSound() {
System.out.println("λλ¬Όμ΄ μ리λ₯Ό λΈλ€.");
}
}
public class Cat extends Animal {
@Override //μ€λ²λΌμ΄λ©μ νκΈ° μν μ΄λ
Έν
μ΄μ
public void makeSound() {
System.out.println("μΌμΉμΌμΉ");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
animal.makeSound(); // "λλ¬Όμ΄ μ리λ₯Ό λΈλ€."
Cat cat = new Cat();
cat.makeSound(); // "μΌμΉμΌμΉ"
}
}
Cat ν΄λμ€κ° Animal ν΄λμ€μ makeSound()λ₯Ό μ€λ²λΌμ΄λ©ν΄μ, κ³ μμ΄λ§μ μ리λ₯Ό λ΄λλ‘ μ¬μ μν κ².
β λ κ°λ μ μ°¨μ΄ μ 리
κ΅¬λΆ | μ€λ²λ‘λ© (Overloading) | μ€λ²λΌμ΄λ© (Overriding) |
μ μ© λμ | κ°μ ν΄λμ€ λ΄ λ©μλ | μμ κ΄κ³μ μλ ν΄λμ€ κ° λ©μλ |
λ§€μλ μ΄λ¦ | λμΌν΄μΌ ν¨ | λμΌν΄μΌ ν¨ |
λ§€κ°λ³μ | λ€λ₯΄κ² μ μν΄μΌ ν¨ | μμ ν κ°μμΌ ν¨ (νμ , κ°μ, μμ) |
λ°ν νμ | λ€λ₯Ό μ μμ | κΈ°λ³Έμ μΌλ‘ κ°μμΌ νμ§λ§, μμ νμ μ νμ©λ¨ |
λͺ©μ | λ©μλ μ΄λ¦ μ¬μ¬μ©μΌλ‘ κ°λ μ± ν₯μ | κΈ°λ₯ λ³κ²½/νμ₯μ μν μ¬μ μ |
μ»΄νμΌ νμ | μ΄λ€ λ©μλκ° νΈμΆλ μ§ μ»΄νμΌ μ κ²°μ λ¨ | μ€ν μμ μ μ€μ κ°μ²΄ νμ μ λ°λΌ κ²°μ λ¨ (λ€νμ±) |