[JAVA] instanceof ์ฐ์ฐ์
๋จ๊ถ์ฑ ์ ์์ ๊ฐ์๋ฅผ ๋ณด๊ณ ch7์ ์ ๋ฆฌํด๋ณด์๋ค!
https://youtu.be/YvCgrZQU4EM?si=nd3kNAonv4s_ritC
instanceof ์ฐ์ฐ์๋ ํ๋ณํ ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ์ฒดํฌํ๊ธฐ ์ํด ์กด์ฌ
์ฐธ์กฐ๋ณ์์ ํ๋ณํ์ ์กฐ์๊ณผ ์์๋ผ๋ฆฌ๋ง ๋๋ค.
ํ๋ณํํ๋ ์์
โ ํ๋ณํํด๋ ๋๋์ง ๋ฐ๋์ ํ์ธ
โก ํ๋ณํ
void doWork(Car c) {
if (c instanceof FireEngine) {
FireEngine fe = (FireEngine)c;
}
}
FireEngine fe = new FireEngine();
System.out.println(fe instanceof Object); // true
System.out.println(fe instanceof Car); // true
System.out.println(fe instanceof FireEngine); // true
๋ชจ๋ ์กฐ์๋ค๊ณผ ์๊ธฐ ์์ ์ ๋ํด์ true๋ฅผ ๋ฐํํ๋ค
Q. ์ฐธ์กฐ๋ณ์์ ํ๋ณํ์ ์ ํ๋์?
A. ์ฐธ์กฐ๋ณ์(๋ฆฌ๋ชจ์ปจ)์ ๋ณ๊ฒฝํจ์ผ๋ก์จ ์ฌ์ฉํ ์ ์๋ ๋ฉค๋ฒ์ ๊ฐ์๋ฅผ ์กฐ์ ํ๊ธฐ ์ํด์
(์๋ฅผ๋ค์ด Car์๋ ์๋ FireEngine์๋ง ์๋ water()๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๊ฑฐ๋, ๊ฐ์๋ฅผ ์กฐ์ ํ๊ณ ์ถ์ ๋)
์ฐธ์กฐ์ฃผ์๋ ๋ณํ์ง ์๊ณ , ์ฐธ์กฐ์ฃผ์ ์์์๋ f ↔ c ๋ง ๋ฐ๋๋ ๊ฒ์ด๋ค.
Q. instanceof์ฐ์ฐ์๋ ์ธ์ ์ฌ์ฉํ๋์?
A. ์ฐธ์กฐ๋ณ์๋ฅผ ํ๋ณํ ํ๊ธฐ ์ ์ ํ๋ณํ ๊ฐ๋ฅ์ฌ๋ถ๋ฅผ ํ์ธํ ๋