Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발 한번 해블로그

[Java] 19. 객체 형 변환(feat. 캐스팅) 본문

Java

[Java] 19. 객체 형 변환(feat. 캐스팅)

hide on bush 2023. 12. 20. 11:08

상속 관계에서의 형 변환에 대해 알아보자
이전에 한번 casting에 대해서 포스팅한 적이 있고 같은 원리라고 생각하면 된당 ㅎㅎ!

1. 부모와 자식 간에 형 변환이 된다

- 부모는 여러 명의 자식을 가리킬 수 있다
- 부모를 알면 자식들을 관리하기 쉽다

1) 업캐스팅(Upcasting)

- 부모와 자식이 상속 관계일 경우 자료형이 다르더라도 부모 타입으로 자식들을 가리킬 수 있음

2) 다운캐스팅(Downcasting)

다운캐스팅 상위클래스의 타입을 하위클래스의 타입으로 바꾸는 행위
- 강제형변환임
- 부모가 특정 자식으로 갈 때는 자식 타입으로 바꿔야함
자식A c=(자식A)부모;
- 무조건 다운캐스팅이 되는 것이 아니라, 업캐스팅이 되어야 가능함

import fc.java.model.Animal02;
import fc.java.model.Cat02;
import fc.java.model.Dog02;

public class ObjectCasting02 {
    public static void main(String[] args) {
        Animal02 a=new Dog02(); //업캐스팅
        a.eat();

        a=new Cat02(); //업캐스팅
        a.eat();
        a.night(); // 형변환이 필요. 즉 다운캐스팅이 필요
    }
}
import fc.java.model.Animal02;
import fc.java.model.Cat02;
import fc.java.model.Dog02;

public class ObjectCasting02 {
    public static void main(String[] args) {
        Animal02 a=new Dog02(); //업캐스팅
        a.eat();

        a=new Cat02(); //업캐스팅
        a.eat();
        //a.night(); // 형변환이 필요. 즉 다운캐스팅이 필요
        Cat02 c=(Cat02)a;
        c.night();
        //((Cat02)a).night(); //위에껄 한줄로 표현

    }
}

캐스팅하니까 생각난건데,,, 요즘 유튭에 길거리 캐스팅 당하는 법도 있더라 ㅎㅋㅎㅋㅎㅋㅎㅋ
하필,, 우리집 바로 앞에 JYP 엔터까지,, ^^