โ€ก๐Ÿ‘ฉโ€๐Ÿ’ป โ€ก/ยบ 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.๋ถ€๋ชจ๋ฉ”์†Œ๋“œ();