πŸŒΉΒ μ •λ¦¬ by μž₯λ―Έ(https://velog.io/@newbiekim/)

Overloading

Overload: to put too many things in or on someting.

μ˜€λ²„λ‘œλ“œλŠ” 무언가에 λ„ˆλ¬΄ 많이 λ‹΄λŠ” 것을 λœ»ν•œλ‹€. 이런 μ˜€λ²„λ‘œλ“œμ˜ 뜻처럼, μ˜€λ²„λ‘œλ”©μ΄λž€ 이름은 ν•˜λ‚˜μ˜ λ©”μ„œλ“œ μ΄λ¦„μœΌλ‘œ μ—¬λŸ¬ 가지 κΈ°λŠ₯을 λ‹΄λŠ”λ‹€λŠ” μ˜λ―Έμ—μ„œ λΆ™μ—¬μ‘Œλ‹€.

즉, μžλ°”μ—μ„œ μ˜€λ²„λ‘œλ”©μ€ λ©”μ„œλ“œ 이름은 κ°™μ§€λ§Œ λ§€κ°œλ³€μˆ˜ 개수, 데이터 νƒ€μž…, μˆœμ„œ 쀑 ν•˜λ‚˜λΌλ„ λ‹€λ₯΄λ©΄ μ„œλ‘œ λ‹€λ₯Έ λ©”μ„œλ“œλ‘œ μ·¨κΈ‰ν•˜λŠ” 것을 λ§ν•œλ‹€.

void human() {
	System.out.println("νŒŒλΌλ―Έν„° μ—†μŒ");
}

void human(int a) {
	System.out.println("νŒŒλΌλ―Έν„° 1개");
}

void human(int a, String b) {
	System.out.println("νŒŒλΌλ―Έν„° 2개");
}

void human(int a, String b, int c) {
	System.out.println("νŒŒλΌλ―Έν„° 3개");
}

μ°Έκ³  μ˜€λ²„λ‘œλ”© μ‹œ νŒŒλΌλ―Έν„°μ˜ μˆœμ„œκ°€ 달라도 λ˜μ§€λ§Œ, 이것은 쒋지 μ•Šμ€ μ½”λ“œλ‹€. λ˜ν•œ, 리턴 νƒ€μž…λ§Œ λ‹€λ₯Έ λ©”μ„œλ“œ μ—­μ‹œ μ—λŸ¬λ₯Ό λΆˆλŸ¬μΌμœΌν‚¨λ‹€.

//λ‚˜μœ 예 1. λ¦¬ν„΄νƒ€μž…λ§Œ λ‹€λ₯Έ 경우
void dog(int a) {
	System.out.println("νŒŒλΌλ―Έν„° 1개");
}

int dog(int a) {
	System.out.println("νŒŒλΌλ―Έν„° 1개");
}

//λ‚˜μœ 예 2. νŒŒλΌλ―Έν„°μ˜ μˆœμ„œκ°€ λ‹€λ₯Έ 경우
void cat(int a, long b) {
	System.out.println("νŒŒλΌλ―Έν„° 2개");
}

void cat(long b, int a) {
	System.out.println("νŒŒλΌλ―Έν„° 2개");
}

Overriding

Override: to ignore or refuse to accept a suggestion, idea, or method that already exists or operates.

μ˜€λ²„λΌμ΄λ“œλŠ” 이전에 μ •μ˜λœ 것을 λ¬΄μ‹œν•œλ‹€λŠ” λœ»μ„ 가지고 μžˆλ‹€.

μžλ°”μ—μ„œ μ˜€λ²„λΌμ΄λ“œλŠ” 상속과 관련이 μžˆλ‹€.

μ˜€λ²„λΌμ΄λ”©μ΄λž€, μžμ‹ ν΄λž˜μŠ€κ°€ λΆ€λͺ¨ ν΄λž˜μŠ€μ—κ²Œμ„œ 상속 받은 λ©”μ„œλ“œλ₯Ό μžμ‹ μ˜ νŠΉμ„±μ— 맞게 μˆ˜μ •(μž¬μ •μ˜)ν•˜λŠ” 것을 λœ»ν•œλ‹€.