[JAVA] ์ฐธ์กฐ๋ณ์ super, ์์ฑ์ super()
๋จ๊ถ์ฑ ์ ์์ ๊ฐ์๋ฅผ ๋ณด๊ณ 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(){} // ๊ธฐ๋ณธ์์ฑ์ ์์ฑํด์ฃผ๊ธฐ
}