Casting

Jiian·2022년 5월 9일

Java-Object-Oriented

목록 보기
5/7

해당 내용은 JSP, Servlet 공부 도중 잘 몰랐던 내용을 정리한 게시물입니다. 많은 분들의 블로그와 지식을 기반으로 작성하였습니다.

Casting (형 변환) 이란?

  • 변수나 리터럴 타입을 다른 타입으로 변환하는 것

cf) 리터럴 타입 : 변하지 않는 데이터 그 자체를 의미하며, 원시 타입 (primitive) 와 String이 있음

  • 상속 관계에 있는 부모와 자식 클래스 간에 서로 형 변환
  • OOP의 다형성 측면에서 사용함

종류

1. UpCasting

  • 자식 클래스가 부모 클래스 타입으로 캐스팅 되는 것
class Human{
// 생략
}

class Student extends Human{
// 생략
}
public class CastingTest {
	public static void main(String[] args) {
    
    	Student student = new Student();
        Human human = student; 
        // 자식 클래스(Student)가 부모 클래스(Human)타입으로 캐스팅
  	}
}

2. Downcasting

  • 부모 클래스가 자식 클래스 타입으로 캐스팅 되는 것
class Human{
// 생략
}

class Student extends Human{
// 생략
}
public class CastingTest {
	public static void main(String[] args) {
    
    	Human human = new Human();
        Student student = (Student) human;
        // 부모 클래스(Human)이 자식 클래스(Student)타입으로 캐스팅
        // 위의 구문은 오류지만, 이런 식으로 된다는 걸 보여주기 위한 것이니 참고만 하자.
        // 실제로 다운캐스팅은 업 캐스팅이 선행된 후 되어야 한다.
  	}
}
profile
Slow and Steady

0개의 댓글