[Java] μ€λ²λ‘λ© vs μ€λ²λΌμ΄λ©
μ€λ²λ‘λ©κ³Ό μ€λ²λΌμ΄λ©μ κΈ°λ₯μ μΌλ‘ ν° μ°¨μ΄κ° μμ§λ§ μ΄λ¦μ΄ λΉμ·ν κΉλμΌλ‘ νΌλμ μ€λ€. μ€λ²λ‘λ©κ³Ό μ€λ²λΌμ΄λ©μ κΈ°λ₯μ λν΄ μ 리ν΄λ³΄μ!
κ°λ¨νκ² μ 리νμλ©΄,
μ€λ²λ‘λ©: κ°μ μ΄λ¦μ λ©μλλ₯Ό μ¬λ¬ κ° μ μΈνλ κ²
μ€λ²λΌμ΄λ©: λΆλͺ¨ ν΄λμ€λ‘λΆν° μμλ°μ λ, λΆλͺ¨μ λ©μλλ₯Ό μ¬μ μνλ κ²
λ©μλ μ€λ²λ‘λ©
κ°μ μ΄λ¦μ λ©μλμ λ§€κ°κ°μ λ€μνκ² νμ¬ μ¬λ¬ κ° μ μΈνλ κ²μ λ©μλ μ€λ²λ‘λ©μ΄λΌκ³ νλ€.
λ©μλ μ€λ²λ‘λ©μ 쑰건μ λ§€κ°λ³μμ νμ / κ°μ / μμ μ€ μ μ΄λ ν κ°κ° λ€λ₯΄κ² μ μΈνλ κ²μ΄λ€.
μλ₯Ό λ€μ΄, λ¦¬ν΄ νμ λ§ λ€λ₯΄κ³ λ§€κ°λ³μκ° λμΌνλ©΄ μ΄λ μ€λ²λ‘λ©μ΄λΌκ³ νμ§ μκ³ , μ΄λ μ»΄νμΌ μλ¬κ° λ°μνλ€.
μ€λ²λ‘λ©μ μμλ λ€μκ³Ό κ°λ€.
int plus(int x, int y) {
int result = x+y;
return result;
}
double plus(double x, double y){
double result = x+y;
return result;
}
μ€λ²λΌμ΄λ©; λ©μλ μ¬μ μ
μμ ν΄λμ€μμ λΆλͺ¨ ν΄λμ€λ₯Ό μμ λ°μ λ, μμ ν΄λμ€κ° μμλ μΌλΆ λ©μλλ₯Ό μμ νμ¬ μ¬μ©νκΈ° μν΄μ λ©μλλ₯Ό μ¬μ μ νλ κ²μ μ€λ²λΌμ΄λ©μ΄λΌκ³ νλ€.
public class Cafe {
String makeCoffee(){
return "컀νΌλ₯Ό λ§λ λ€."
}
}
public class Latte {
@Override
String makeCoffee(){
return "λΌλΌλ₯Ό λ§λ λ€."
}
}
μ€λ²λΌμ΄λ©μ νκ² λλ©΄, λΆλͺ¨ ν΄λμ€μ μ μλμ΄ μλ λ©μλλ μ¨κ²¨μ§κ³ μ€λ²λΌμ΄λ©(μ¬μ μ)λ μμ λ©μλλ§ μ¬μ©λλ€. νμ§λ§ μμ ν΄λμ€ λ΄λΆμμ μ¬μ μ νμ§ μμ λΆλͺ¨μ λ©μλλ₯Ό μ¬μ©νκ³ μΆλ€λ©΄ super ν€μλλ₯Ό ν΅ν΄ νΈμΆν μ μλ€.
super.λΆλͺ¨λ©μλ();