Overide vs Overload
Mention : κ³Όμ π¦ vs μ¬μ μπ₯
Overriding
- μ¬μ μνλ€
- μμ ν΄λμ€μ λ©μλμ μ΄λ¦κ³Ό μ©λ‘κ° κ°μ ν¨μλ₯Ό νμ ν΄λμ€μ μ¬μ μ νλκ²
- μ¦, μμ κ΄κ³μ μλ ν΄λμ€ κ°μ κ°μ μ΄λ¦μ λ©μλλ₯Ό μ¬μ μνλ κ²μ λ§νλ€.
Overloading
- Overload : κ³Όμ νλ€
- λ λ©μλκ° κ°μ μ΄λ¦μ κ°κ³ μμΌλ μΈμμ μλ μλ£νμ΄ λ€λ₯Έ κ²½μ°
- μμκ³Όλ μκ΄μ΄ μλ€.
- λ©μλ μ΄λ¦μ μ μ½κ³Ό μμμ κ°λ₯νκ² νλ€.
class Cal{
public int sum(int v1, int v2){
return v1+v2;
}
// Overloading
public int sum(int v1, int v2, int v3){
return v1+v2+v3;
}
}
class Cal3 extends Cal{
public int minus(int v1, int v2){
return v1-v2;
}
// Overriding
public int sum(int v1, int v2){
System.out.println("Cal3!!");
return v1+v2;
}
}
public class InheritanceApp {
public static void main(String[] args) {
Cal c = new Cal();
System.out.println(c.sum(2, 1)); //3
System.out.println(c.sum(2, 1, 1)); //4 Overloading
Cal3 c3 = new Cal3();
System.out.println(c3.minus(2, 1));
System.out.println(c3.sum(2, 1)); //Overriding
}
}
- Summary
- μ€λ²λΌμ΄λλ βμ¬μ μβ νλ κ²μΌλ‘ μμ ν΄λμ€, μ¦ μμ κ΄κ³μ μλ ν΄λμ€ κ°μ κ°μ μ΄λ¦μ λ©μλλ₯Ό μ¬μ μνλ κ²μ λ§ν©λλ€. μ€λ²λ‘λλ βκ³Όμ νλ€β λΌλ λ»μΌλ‘ λ λ©μλκ° κ°μ μ΄λ¦μ κ°κ³ μμΌλ μΈμμ μλ μλ£νμ΄ λ€λ₯Έ κ²½μ°λ₯Ό λ§ν©λλ€. μμκ³Όλ μκ΄μ΄ μλ κ²½μ°μ λλ€.
- λ κΈ°λ₯μΌλ‘ JAVAμμ λ€νμ±μ ꡬννκ³ , SOLID - OCP, LSP μμΉμ μ§ν¬ μ μμ΅λλ€.
Reference π
https://gmlwjd9405.github.io/2018/08/09/java-overloading-vs-overriding.html
Leave a comment