2023/10/14

Seunghee Ryu·2023년 10월 14일
0

TIL

목록 보기
12/15

인스턴스 변수 초기화 순서

  • 인스턴스 멤버의 초기화는 생성자로 한다
  • 2개의 대체 방법이 있다
    - 초기화 블럭
    - final methods
  • 자바 컴파일러가 초기화 블럭을 모든 생성자 안에 복사를 한다
    - 여러 생성자가 초기화 블럭을 사용할 때 이 방법을 사용할 수도 있다
  • final은 덮어쓸 수 없다

다운캐스팅이 안되는 이유

  • 자식 클래스의 구성은 부모 클래스의 구성보다 방대하다
    - 자식 클래스의 참조변수가 부모 클래스의 객체를 참조할 경우에 부모 클래스의 구성 요소에는 접근이 가능하지만 자식 클래스에 존재하는 인스턴스 변수나 메소드의 접근이 불가능하기 때문
    - 변수가 원하는 정보를 다 채워주지 못한다 (부모 데이터 < 자식 데이터)
  • 하지만 업캐스팅을 선해하고 다운캐스팅을 한다면 문제없이 캐스팅이 가능
public class Parent{
	// 부모
}

public class Child extends Parent {
	// 자식
}

public class DownCasting {
	// 런타임 에러
	// Child child = (Child) new Parent();
    
    // 업캐스팅
	Parent parent = new Child();
	// 다운캐스팅
	Child child = (Child) parent();
}

0개의 댓글