Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 익명함수
- router
- import
- 자바
- 라우터
- 어노테이션
- 인코딩
- 디코딩
- 생성자
- 문자집합
- package
- Super
- Arrow function
- final 클래스
- 기본 생성자
- 메소드 재정의
- 노드
- node
- annotation
- final 메소드
- Anonymous Functions
- 클래스
- final
- 객체지향 #객체지향 특징
- 패키지
- 화살표 함수
- Override
- 유니코드
- 자바의 특징
- 즉시 실행 함수
Archives
- Today
- Total
개인 공부 블로그
자동 타입 변환(Promotion) 본문
프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것.
자동 타입 변환은 아래와 같은 조건에서 일어남.
부모클래스 변수 = 자식클래스 타입;
Class Animal {
...
}
Class Cat extends Animal {
...
}
생략
...
Cat cat = new Cat();
Animal animal = cat; // Animal animal = new Cat()도 가능.
cat과 animal 변수는 타입만 다를 뿐, Cat 객체를 참조한다. 부모인 Animal 객체를 참조하는 것이 아님.
- 바로 위의 부모가 아니더라도 상속 계층에서 상위 타입이면 자동 타입 변환이 일어날 수 있다.
- 부모 타입으로 자동 타입 변환된 이후에는 변수는 자식 객체를 참조하지만 부모 클래스의 필드, 메소드만 접근이 가능함.
그러나 예외로 메소드가 자식클래스에서 오버라이딩 되었다면 자식 클래스의 메소드가 대신 호출된다.
-> 다형성과 관련있는 매우 중요한 성질
필드의 다형성
왜 자동 타입 변환이 필요할까? 그냥 자식타입으로 사용 안하고 부모 타입으로 변환하는 이유?
-> 다형성을 구현하는 기술적 방법 때문에
자동차를 구성하는 부품은 언제든지 교체가 가능. 객체 지향 프로그램에서도 마찬가지로 객체들은 다른 객체로 교체될 수 있어야 한다. 새로 교체되는 타이어 객체는 기존 타이어와 사용 방법은 동일하지만 실행 결과는 더 우수하게 나와야 할 것이다. 이것을 구현하기 위해 상속, 오버라이딩, 타입 변환을 이용하는 것이다.
'JAVA' 카테고리의 다른 글
자바 컴파일러, 바이트코드, JVM (0) | 2024.02.05 |
---|---|
protected 접근 제한자 (0) | 2023.09.21 |
final 클래스와 final 메소드 (0) | 2023.09.21 |
메소드 재정의 (0) | 2023.09.21 |
상속 (0) | 2023.09.21 |