less than 1 minute read

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

https://www.youtube.com/watch?v=RvZ5yJvaUAc

Tags: ,

Categories:

Updated:

Leave a comment