본문 바로가기

IT일반과목/java

자바 강제 타입 변환(Casting)

강제 타입 변환(Casting)


강제 타입 변환(Casting)은 부모 타입을 자식 타입으로 변환하는 것을 말한다. 그렇다고 해서 모든 부모 타입을 자식 클래스 타입으로 강제 변환할 수 있는 것은 아니다. 자식 타입이 부모 타입으로 자동 변환한 후, 다음 자식 타입으로 변환할 때 강제 타입 변환을 사용할 수 있다.


ex)

Parent parent = new Child(); //자동 타입 변환

이거라면 부모메소드 꺼만 쓸수 있고 자식메소드 꺼는 못쓴다. 



Child child = (child)parent; //강제 타입 변환

이렇게 해줄경우 자식꺼를 쓸 수있다.당연히 부모껏도 쓸수 있다.

-------------------------------------------------------------------------------------------------------

package jongkyu.day0724;


public class ChildExample {

public static void main(String[] args) {

Parent parent = new Child(); //자동타입변환

parent.field1 = "data1";

parent.method1();

parent.method2();

/*

* parent.field2 = "data2"; //불가능

* parent.method3(); //불가능

*/

Child child = (Child) parent; //강제 타입 변환

child.field2 = "yyy"; //가능

child.method3(); //가능

parent.method1();

}

}

--------------------------------------------------------------------------
package jongkyu.day0724;

public class Child extends Parent {
public String field2;
public void method3() {
System.out.println("Child-method3()");
}
}
-----------------------------------------------------------------

package jongkyu.day0724;


public class Parent {

public String field1;

public void method1() {

System.out.println("Parent-method1()");

}

public void method2() {

System.out.println("Parent-method2()");

}

}