‡πŸ‘©‍πŸ’» ‡/º Java

[Java] μ˜€λ²„λ‘œλ”© vs μ˜€λ²„λΌμ΄λ”©

Trudy | 솑연 2023. 11. 27. 19:55

μ˜€λ²„λ‘œλ”©κ³Ό μ˜€λ²„λΌμ΄λ”©μ€ κΈ°λŠ₯적으둜 큰 차이가 μžˆμ§€λ§Œ 이름이 λΉ„μŠ·ν•œ κΉŒλ‹­μœΌλ‘œ ν˜Όλ™μ„ μ€€λ‹€. μ˜€λ²„λ‘œλ”©κ³Ό μ˜€λ²„λΌμ΄λ”©μ˜ κΈ°λŠ₯에 λŒ€ν•΄ μ •λ¦¬ν•΄λ³΄μž!

 

κ°„λ‹¨ν•˜κ²Œ μ •λ¦¬ν•˜μžλ©΄,

μ˜€λ²„λ‘œλ”©:  같은 μ΄λ¦„μ˜ λ©”μ†Œλ“œλ₯Ό μ—¬λŸ¬ 개 μ„ μ–Έν•˜λŠ” 것

μ˜€λ²„λΌμ΄λ”©: λΆ€λͺ¨ ν΄λž˜μŠ€λ‘œλΆ€ν„° 상속받을 λ•Œ, λΆ€λͺ¨μ˜ λ©”μ†Œλ“œλ₯Ό μž¬μ •μ˜ν•˜λŠ” 것

 

 

λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©

같은 μ΄λ¦„μ˜ λ©”μ†Œλ“œμ— λ§€κ°œκ°’μ„ λ‹€μ–‘ν•˜κ²Œ ν•˜μ—¬ μ—¬λŸ¬ 개 μ„ μ–Έν•˜λŠ” 것을 λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©μ΄λΌκ³  ν•œλ‹€. 

λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©μ˜ 쑰건은 λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž… / 개수 / μˆœμ„œ 쀑 적어도 ν•œ κ°œκ°€ λ‹€λ₯΄κ²Œ μ„ μ–Έν•˜λŠ” 것이닀. 

예λ₯Ό λ“€μ–΄, 리턴 νƒ€μž…λ§Œ λ‹€λ₯΄κ³  λ§€κ°œλ³€μˆ˜κ°€ λ™μΌν•˜λ©΄ μ΄λŠ” μ˜€λ²„λ‘œλ”©μ΄λΌκ³  ν•˜μ§€ μ•Šκ³ , μ΄λŠ” 컴파일 μ—λŸ¬κ°€ λ°œμƒν•œλ‹€. 

 

μ˜€λ²„λ‘œλ”©μ˜ μ˜ˆμ‹œλŠ” λ‹€μŒκ³Ό κ°™λ‹€. 

 

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.λΆ€λͺ¨λ©”μ†Œλ“œ();