NULL
JAVA 클래스 형변환 개념정리 본문
클래스 형변환
부모타입으로 자식객체를 참조하게 되면 부모가 가지고 있는 메소드만 사용할 수 있다.
자식객체가 가지고 있는 메소드나 속성을 사용하고 싶다면 형변환을 해야한다.
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. 부모타입 객체를 자식타입으로 참조하게 할때 명시적 형변환을 해줘야한다.
단, 이렇게 형변환을 시도할땐 부모가 참초하는 인스턴스가 형변환하려는 자식타입일 때만 가능하다.
'Back-end > JAVA' 카테고리의 다른 글
java 인터페이스(interface) 개념정리 (0) | 2022.02.08 |
---|---|
클래스 이름 가져오기 (0) | 2022.02.08 |
JAVA 오버로드와 오버라이딩 차이점과 개념정리 (0) | 2022.02.02 |
JAVA super와 부모생성자 개념정리 (0) | 2022.02.02 |
JAVA 추상클래스 (0) | 2022.01.27 |
Comments