π μΊμ€ν (Casting) : λ°μ΄ν° νμ μ λ€λ₯Έ λ°μ΄ν° νμ μΌλ‘ λ³ννλ κ³Όμ μΌλ‘, νλ³νμ΄λΌκ³ λ λΆλ¦°λ€.
μΊμ€ν μ νμμ±
- λ€νμ± : μ€λ²λΌμ΄λ©λ ν¨μλ₯Ό λΆλ¦¬ν΄μ νμ©ν μ μλ€
- μμ : μΊμ€ν μ ν΅ν΄ λ²μ©μ μΈ νλ‘κ·Έλλ°μ΄ κ°λ₯νλ€.
μΊμ€ν μ μ’ λ₯
- μ
μΊμ€ν
(upcasting) : μμ ν΄λμ€μμ λΆλͺ¨ ν΄λμ€λ‘ νλ³ννλ κ²
- λ°μ΄ν° μμ€ μμ΄ μνλλ€.
- μλ λ³ν : μλ° μ»΄νμΌλ¬κ° μλμΌλ‘ μννλ€.
- μ νλ μ κ·Ό : μ
μΊμ€ν
λ κ°μ²΄λ λΆλͺ¨ ν΄λμ€μμ μ μλ λ©€λ²μλ§ μ κ·Όν μ μμ.
(μμ ν΄λμ€μμ μΆκ°λ λ©€λ²λ μ¬μ©ν μ μλ€.)class Animal { public void makeSound() { System.out.println("Animal sound"); } } class Dog extends Animal { public void bark() { System.out.println("Woof"); } } public class Main { public static void main(String[] args) { Dog dog = new Dog(); Animal animal = dog; // μ μΊμ€ν animal.makeSound(); // Animalμ λ©μλ νΈμΆ // animal.bark(); // μ€λ₯: Animal ν΄λμ€μλ bark() λ©μλκ° μκΈ°μ μ¬μ© λΆκ° } }
- μλ΅μ κΆμ₯νλ€.
- λ€μ΄μΊμ€ν
(downcasting) : ν° ν¬κΈ°μ λ°μ΄ν° νμ
μ μμ ν¬κΈ°μ λ°μ΄ν° νμ
μΌλ‘ λ³ννλ
- μ μΊμ€ν μ΄ λμ΄ μμ μ κ³ μ ν νΉμ±μ μμ μμ ν΄λμ€λ₯Ό λ€μ μλμ νμΌλ‘ 볡μ μμΌμ£Όλ κ²
- λ°νμ μμΈ : λΆλͺ¨ ν΄λμ€ νμ μ κ°μ²΄κ° μ€μ λ‘ μμ ν΄λμ€μ μΈμ€ν΄μ€μΈμ§ νμΈν΄μΌ νλ€.
- λ€μ΄μΊμ€ν
μ ν΅ν΄ μμ ν΄λμ€μμ μ μλ λ©€λ²μ μ κ·Όν μ μλ€.
class Animal { public void makeSound() { System.out.println("Animal sound"); } } class Dog extends Animal { public void bark() { System.out.println("Woof"); } } public class Main { public static void main(String[] args) { Animal animal = new Dog(); // μ μΊμ€ν Dog dog = (Dog) animal; // λ€μ΄μΊμ€ν dog.bark(); // Dogμ λ©μλ νΈμΆ } }
μ μΊμ€ν μ΄ μμ νκ³ λ€μ΄μΊμ€ν μ΄ μνν μ΄μ
: μ μΊμ€ν μ κ²½μ° λ©λͺ¨λ¦¬ μμ μΈμ€ν΄μ€κ° λͺ¨λ μ‘΄μ¬νκΈ° λλ¬Έμ νμ μμ νμ¬ μΊμ€ν μ μλ΅ν΄λ μ€λ₯κ° λμ§ μμ§λ§, λ€μ΄μΊμ€ν μ κ²½μ° μΈμ€ν΄μ€μ μ‘΄μ¬νμ§ μλ νμ νμ μΌλ‘ μΊμ€ν νλ λ¬Έμ κ° λ°μν μ μλ€.
(ClassCastException μ€λ₯ λ°μ)
λ€μ΄μΊμ€ν μ μμ μ± νμΈ - instanceof ν€μλ μ¬μ©
: λ€μ΄μΊμ€ν μ μννκΈ° μ κ°μ²΄κ° μ€μ λ‘ μμ ν΄λμ€μ μΈμ€ν΄μ€μΈμ§ νμΈνλ κ²μ΄ μ€μνλ€.
if (animal instanceof Dog) {
Dog dog = (Dog) animal; // μμ ν λ€μ΄μΊμ€ν
dog.bark();
} else {
System.out.println("The object is not an instance of Dog.");
}
'Language > JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JAVA] BufferedReader (0) | 2024.09.14 |
---|---|
[JAVA] throws IOException (0) | 2024.09.13 |
[JAVA] ν¨ν€μ§ (Package) (1) | 2024.08.30 |
[JAVA] 컬λ μ (Collection) (0) | 2024.08.29 |
[JAVA] μ λ€λ¦ (Generic) (4) | 2024.08.28 |