์ด๋ฒ ๊ธ์ ๋ค๋ฅธ๊ฒ ์๋๋ผ ์บ์คํ ์ ํ ๋ฒ ์ฐ์ตํด๋ณด๋ ๊ธ์ด๋ค.
์ง์ ํ๋ํ๋ ๋ต์ ์๊ฐํด๋ณด๊ณ ์ ๋ต๊ณผ ๋ง์ถฐ๋ณด๋ฉด ๋์์ด ๋ ๊ฒ์ด๋ค.
(๋ณธ์ธ๋ ํ์ต๋๋ค)
* ์๋์ ์ฝ๋์์ ํ๋ณํ ๋ฐ์ ์ฌ๋ถ์ ์ด๋ค ํ๋ณํ์ด ๋ฐ์ํ๋์ง ์ฐพ์๋ณด๊ธฐ
class A
class B extends A
* A ํด๋์ค : ๋ถ๋ชจ ํด๋์ค, ์ํผ ํด๋์ค(=>์์ํ์
)
* B ํด๋์ค : ์์ ํด๋์ค, ์๋ธ ํด๋์ค(=>ํ์ํ์
)
[A] => ์์
[B] => ํ์
1. A a1 = new A(); =>
2. B b1 = new B(); =>
3. A a2 = new B(); =>
4. A a3 = (A)new B(); =>
5. A a4 = b1; => A a4 = new B(); =>
6. A a5 = (A)b1; => A a5 = (A)new B(); =>
5. System.out.println(new B()); =>
6. System.out.println((A)new B()); =>
7. B b2 = new A(); =>
8. B b3 = (B)new A(); =>
9. B b4 = (B)a2; =>
10. ๋ฉ์๋ ์ ์ธ ์ฝ๋ : void testMethod(A a){...}
testMethod(new B()); =>
testMethod(new A()); =>
testMethod(a2); =>
testMethod(a1); =>
testMethod(b1); =>
-------------------------------------------------------------------------------------------------
์ ๋ต :
class A
class B extends A
* A ํด๋์ค : ๋ถ๋ชจ ํด๋์ค, ์ํผ ํด๋์ค(=>์์ํ์
)
* B ํด๋์ค : ์์ ํด๋์ค, ์๋ธ ํด๋์ค(=>ํ์ํ์
)
[A] => ์์
[B] => ํ์
1. A a1 = new A(); => ํ๋ณํ X
2. B b1 = new B(); => ํ๋ณํ X
3. A a2 = new B(); => ํ๋ณํ O => ์
์บ์คํ
4. A a3 = (A)new B(); => ํ๋ณํ O => ์
์บ์คํ
(์๋ต ๊ฐ๋ฅํ์ง๋ง ๋ช
์ํ์)
5. A a4 = b1; => A a4 = new B(); => ํ๋ณํ O => ์
์บ์คํ
6. A a5 = (A)b1; => A a5 = (A)new B(); => ํ๋ณํ O => ์
์บ์คํ
(์๋ต ๊ฐ๋ฅํ์ง๋ง ๋ช
์ํ์)
5. System.out.println(new B()); => ํ๋ณํ X
6. System.out.println((A)new B()); => ํ๋ณํ O => ์
์บ์คํ
7. B b2 = new A(); => ํ๋ณํ ๋ถ๊ฐ(๋ถ๋ชจ ํด๋์ค๋ ์์ํด๋์ค์ ํ์
์ ๊ฐ์ง์ง ์๋๋ค)
8. B b3 = (B)new A(); => ํ๋ณํ ๋ถ๊ฐ(๋ถ๋ชจ ํด๋์ค๋ ์์ํด๋์ค์ ํ์
์ ๊ฐ์ง์ง ์๋๋ค)
9. B b4 = (B)a2; => ํ๋ณํ O => ๋ค์ด์บ์คํ
(์๋ต ๋ถ๊ฐ)
10. ๋ฉ์๋ ์ ์ธ ์ฝ๋ : void testMethod(A a){...}
testMethod(new B()); => ํ๋ณํ O => ์
์บ์คํ
testMethod(new A()); => ํ๋ณํ X
testMethod(a2); => ํ๋ณํ X => ์ด๋ฏธ a2๋ฅผ ํตํด ์
์บ์คํ
์ ํ์
testMethod(a1); => ํ๋ณํ X
testMethod(b1); => ํ๋ณํ O => ์
์บ์คํ
* ๋งค๊ฐ๋ณ์๋ Aํ์
(์์ํ์
)
A a = new B();
A a = new A();
A a = a2;
A a = a1;
A a = b1; => new B();
'์ธ์ด > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JAVA : ์ถ์ ํด๋์ค ์์1 (0) | 2024.08.29 |
---|---|
JAVA : ์ถ์ ํด๋์ค์ ์ถ์ ๋ฉ์๋ (0) | 2024.08.29 |
JAVA : Casting (์บ์คํ ) (7) | 2024.08.28 |
JAVA : Final(์์) ์ฌ์ฉํ๊ธฐ (0) | 2024.08.21 |
JAVA : ์ ๊ทผ ์ ํ์์ static (0) | 2024.08.18 |