ν΄λμ€ νμ μΊμ€ν
λΆλͺ¨ ν΄λμ€, μμ ν΄λμ€ μ¬μ΄μ ν΄λμ€ νμ
μ λ³ννλ κ²
μ’ λ₯
νλͺ© | |
μ
μΊμ€ν
(UpCasting) | μμ κ°μ²΄λ₯Ό λΆλͺ¨ ν΄λμ€ νμ
μΌλ‘ λ³ννλ κ²
|
λ€μ΄μΊμ€ν
(DownCasting) | λΆλͺ¨ κ°μ²΄λ₯Ό μμ ν΄λμ€ νμ
μΌλ‘ λ³ννλ κ²
|
μ μΊμ€ν (Up Casting)
μμ κ°μ²΄λ₯Ό λΆλͺ¨ ν΄λμ€ νμ
μΌλ‘ λ³ννλ κ²
μ μ
μΊμ€ν
μ νλ©΄, λ³μλ λΆλͺ¨ κ²λ§, λ©μλλ μμμ μ°μ ν΄μ μ κ·Όλλμ?
λ³μλ μ μ λ°μΈλ©, λ©μλλ λμ λ°μΈλ©μ΄ μ΄λ£¨μ΄μ§κΈ° λλ¬Έμ
λλ€.
μ μ λ°μΈλ©
μ»΄νμΌ μμ μμ μ°κ²°λ κ°μ κ²°μ νλ λ°©μ
λ³μλ μ μ λ°μΈλ©μ΄ μ μ©λμ μ μΈν ν΄λμ€ νμ
μ λ°λΌμ μ¬μ©ν μ μλ λ³μκ° κ²°μ μ΄ λλ€.
κ·Έλμ μ
μΊμ€ν
μ νλ©΄ λΆλͺ¨ ν΄λμ€μ λ³μλ§ μ κ·Ό κ°λ₯νλ€.
λμ λ°μΈλ©
μ€ν μμ μμ μ°κ²°λ κ°μ κ²°μ νλ λ°©μ
λ©μλλ μ€ν μμ μμ μ€μ κ°μ²΄ μΈμ€ν΄μ€ νμ
μ λ°λΌ κ²°μ λλ€.
κ·Έλμ μ
μΊμ€ν
μ ν΄λ μμ±λ μΈμ€ν΄μ€μΈ μμ ν΄λμ€μ μ€λ²λΌμ΄λ© λ λ©μλκ° μ€νλλ€.
β’
UpCasting.java
class Person {
String name;
int age = 10;
void work() {
System.out.println("μΌμ ν©λλ€.");
}
}
class Student extends Person {
String major;
int age = 20;
void work() {
System.out.println("κ³΅λΆ ν©λλ€.");
}
}
public class UpCasting {
public static void main(String[] args) {
Person person = new Student();
// μλ¬ : System.out.println( person.major );
System.out.println( person.age );
person.work();
}
}
Java
볡μ¬
λ€μ΄μΊμ€ν (Down Casting)
λΆλͺ¨ κ°μ²΄λ₯Ό μμ ν΄λμ€ νμ
μΌλ‘ λ³ννλ κ²
λ€μ΄ μΊμ€ν
μ μ
μΊμ€ν
λ κ°μ²΄λ§ κ°λ₯νλ€.
β’
DownCasting.java
class Person {
String name;
int age = 10;
void work() {
System.out.println("μΌμ ν©λλ€.");
}
}
class Student extends Person {
String major;
int age = 20;
void work() {
System.out.println("κ³΅λΆ ν©λλ€.");
}
}
public class DownCasting {
public static void main(String[] args) {
Person person = new Student(); // μ
μΊμ€ν
Student student = (Student) person; // λ€μ΄ μΊμ€ν
// μλ¬ : Student student2 = new Person();
// * μ
μΊμ€ν
μ μ μ νμ§ μμΌλ©΄ μλ¬κ° λ°μνλ€.
System.out.println( student.age );
student.work();
}
}
Java
볡μ¬