NULL

JAVA 클래스 형변환 개념정리 본문

Back-end/JAVA

JAVA 클래스 형변환 개념정리

1924 2022. 2. 2. 12:50

클래스 형변환

부모타입으로 자식객체를 참조하게 되면 부모가 가지고 있는 메소드만 사용할 수 있다.

자식객체가 가지고 있는 메소드나 속성을 사용하고 싶다면 형변환을 해야한다.

 

    public class Car{
        public void run(){
            System.out.println("Car의 run메소드");
        }
    }

    public class Bus extends Car{
        public void ppangppang(){
            System.out.println("빵빵.");
        }   
    }

 

상속관계란 is a 관계이다. "Bus는 Car다" 라는 관계가 성립된 것이다.

현실에서도 버스를 가리키면서 차다. 라고 말한다.

 

 

부모타입으로 자식객체를 참조할 수 있다.

부모타입으로 자식객체를 참조하게 되면 부모가 가지고 있는 메소드만 사용할 수 있다.

    public class BusExam{
        public static void main(String args[]){
            Car car = new Bus();
            car.run();
            car.ppangppang(); // 컴파일 오류 발생
        }
    }

ppangppang()메소드를 호출하고 싶다면 Bus타입의 참조변수를 참조해야한다.

    public class BusExam{
        public static void main(String args[]){
            Car car = new Bus();
            car.run();
            //car.ppangppang(); // 컴파일 오류 발생

            Bus bus = (Bus)car;  //부모타입을 자식타입으로 형변환 
            bus.run();
            bus.ppangppang();
        }
    }

1. 객체들끼리도 형변환이 가능하다. 단, 상속관계에 있었을 때만 가능하다.

2. 부모타입으로 자식타입의 객체를 참조할 때는 묵시적으로 형변환이 일어난다.

3. 부모타입 객체를 자식타입으로 참조하게 할때 명시적 형변환을 해줘야한다.

   단, 이렇게 형변환을 시도할땐 부모가 참초하는 인스턴스가 형변환하려는 자식타입일 때만 가능하다.

Comments