무향향수

[Java]클래스 형변환 본문

SW아카데미 (23)/JAVA

[Java]클래스 형변환

튼튼한장 2023. 7. 7. 15:40

[Day4] 상속, 인터페이스와 다른 형식의 클래스, 예외처리

 

Chapter 7-6 클래스 형변환

 

목차 🍑
  1. 클래스 타입 변환
  2. 자동 타입 변환
  3. 강제 타입 변환

🍑클래스 타입 변환?

  • 클래스 타입 변환 : 상속 관계인 클래스에서 타입 변환이 발생한다.
  • 클래스 타입 변환에는 자동 타입 변환과 강제 타입 변환이 있다.
public class SchoolStudent extends Student{ // Student클래스 상속
    public static void main(String[] args){
        Student student = new SchoolStudent(); // 자동 형변환 (자식 -> 부모)
    }
}

class Student{
    
}

자동 타입 변환 : 실행 중 자동으로 타입 변환이 발생하는 것

[자식클래스 -> 부모클래스] 방향으로 자동 타입 변환이 된다.

 

예) 자식 클래스(학교 학생) -> 부모 클래스(학생)

학교 학생은 학생이 맞지만, 모든 학생이 학교 학생은 아니다.

 


🍑자동 타입 변환

Student student = new SchoolStudent();
  • 자식 클래스 -> 부모 클래스 방향으로 자동 타입 변환된다.
  • 자동 타입 변환 후에는 부모 클래스에 정의된 멤버만 사용할 수 있다. 
  •  단, 자식 클래스에 메소드 오버라이딩을 구현한 경우 자식 클래스 메소드가 호출된다.
  • 자동 타입 변환 활용하기 - 메소드 호출 : 매개변수를 부모 클래스로 한 뒤 메소드 인자에 자식 클래스를 넣어 호출하면 자동타입변환 처리가 된다.

 

❓❓ 메소드를 호출하여 자동 타입 변환을 어떻게 활용할 수 있을까 ❓❓

 


🍑강제 타입 변환

  •  자동 타입 변환이 불가해서 강제로 타입을 변환하는 것
  • 부모 클래스 -> 자식 클래스 방향으로 강제 타입 변환한다.
  • (소괄호)에 원하는 자식 클래스를 선언한다.
Student student = new SchoolStudnet(); // 부모 클래스로 선언된 student 변수를
SchoolStudent schoolStudent (Student) student; // 자식 클래스로 강제 타입 변환한다.
  •  자식 클래스로 강제 타입 변환을 하면 자식 클래스에 선언된 필드와 메소드를 사용할 수 있다.

 

 

 

더보기

내용 요약⭐

  • 자식 -> 부모 (자동 타입 변환)
  • 부모 -> 자식 (강제 타입 변환)

 

더보기

❓질문

  • 클래스 형변환을 사용하는 이유가 무엇일까?

'SW아카데미 (23) > JAVA' 카테고리의 다른 글

[Java]오버로딩  (0) 2023.07.12
[Java]Wrapper 클래스  (0) 2023.07.11
[Java]추상클래스  (0) 2023.07.07
[Java]오버라이딩  (0) 2023.07.06
[Java]상속  (0) 2023.07.06