๐™น๐šŠ๐šŸ๐šŠ

[JAVA] ์ฐธ์กฐ๋ณ€์ˆ˜ super, ์ƒ์„ฑ์ž super()

ํ•ด๋ฒ„๋‹ˆ 2024. 11. 16. 13:37
๋ฐ˜์‘ํ˜•

๋‚จ๊ถ์„ฑ ์ €์ž์˜ ๊ฐ•์˜๋ฅผ ๋ณด๊ณ  ch7์„ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค!

 

 

https://youtu.be/XT9KmsEk9f8?si=So9wZwDi0s6VOjnk

 

 

 

 

 

super

super๋Š” this์™€ ๊ฑฐ์˜ ์œ ์‚ฌํ•˜๋‹ค

- ๊ฐ์ฒด ์ž์‹ ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฐธ์กฐ๋ณ€์ˆ˜. ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ(์ƒ์„ฑ์ž)๋‚ด์—๋งŒ ์กด์žฌ

- ์กฐ์ƒ์˜ ๋ฉค๋ฒ„๋ฅผ ์ž์‹ ์˜ ๋ฉค๋ฒ„์™€ ๊ตฌ๋ณ„ํ•  ๋•Œ ์‚ฌ์šฉ

this : lv(local variable)์™€ iv(instance variable) ๊ตฌ๋ณ„์— ์‚ฌ์šฉ
super : ์กฐ์ƒ๋ฉค๋ฒ„์™€ ์ž์‹ ๋ฉค๋ฒ„ ๊ตฌ๋ณ„์— ์‚ฌ์šฉ

 

 

๋นˆ ๋ฐฉ์ด 3๊ฐœ์ด๋‹ค (super.x, this.x, method() ์ด๋ ‡๊ฒŒ 3๊ฐœ) 

Parent์˜ x์™€ Child์˜ x๋Š” ๋˜‘๊ฐ™์€ x๋ผ๋„ ๊ตฌ๋ณ„๋œ x์ด๋‹ค.

 

 

 

์ด ๊ฒฝ์šฐ๋Š” ๋นˆ ๋ฐฉ์ด 2๊ฐœ์ด๋‹ค. (super.x์™€ method())

 

 

 

 

 

super() - ์กฐ์ƒ์˜ ์ƒ์„ฑ์ž

-์กฐ์ƒ์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ์šฉ

-์กฐ์ƒ์˜ ๋ฉค๋ฒ„๋Š” ์กฐ์ƒ์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์ดˆ๊ธฐํ™”

 

์กฐ์ƒ ์Šค์Šค๋กœ ์ดˆ๊ธฐํ™” ํ•ด์•ผ ํ•จ

 

 

 

super() //Object() ๋ถ€๋ถ„์€ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ƒ์„ฑ๋œ๋‹ค.

point()์™€ point(int x, int y) {} ๋ถ€๋ถ„์€ ์ƒ์„ฑ์ž์˜ ์ฒซ ์ค„์— super() (์ƒ์„ฑ์ž)๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ •์ƒ ์ž‘๋™ ๋จ

 

 

 

 

 

์–˜๋Š” ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค

new Point3D(1,2,3); ์„ ํ•œ๋‹ค๋ฉด

 

 

 

 

 

์ด ๋ถ€๋ถ„์—์„œ super()๊ฐ€ ์ž๋™ ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ์ƒ์„ฑ์ด ๋˜๋Š”๋ฐ, Point์—๋Š” Point()๋ผ๋Š” ์ƒ์„ฑ์ž๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์ปดํŒŒ์ผ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค.

๊ทธ๋ž˜์„œ ๊ธฐ๋ณธ์ƒ์„ฑ์ž ์ž‘์„ฑ์€ ํ•„์ˆ˜์ด๋‹ค~!

 

 

 

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

1๏ธโƒฃ

Point3D(int x, int y, int z) {
	super(x, y);
	this.z =z;
}

 

 

2๏ธโƒฃ

class Point {
	int x;
	int y;
	
	
	point(){} // ๊ธฐ๋ณธ์ƒ์„ฑ์ž ์ƒ์„ฑํ•ด์ฃผ๊ธฐ
}

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•