이롭게 현명하게
[JAVA] 자바 타입 변환 본문
목차
자동 타입 변환
하나의 배열로 객체 관리
매개 변수의 다형성
강제 타입 변환
객체 타입 확인
업/다운캐스팅
[자동 타입 변환]
다형성 : 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질을 말한다.
즉 부모 타입에 모든 자식 객체가 대입될 수 있다.
이것을 이용하면 객체는 부품화가 가능하다.
타입 변환 : 데이터 타입을 다른 데이터 타입으로 변환하는 행위
클래스 타입 변환은 상속 관계에 있는 클래스 사이에서 발생한다.
자식 타입은 부모타입으로 자동 타입 변환이 가능하다.
자동 타입 변환 : 프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것
<자동 타입 변환 조건>
자식은 부모의 특징과 기능을 상속받기 때문에 부모와 동일하게 취급될 수 있다.
a와 b,bb 변수는 타입만 다를 뿐 동일한 A 객체를 참조한다. |
부모 타입으로 자동 타입 변환된 이후에는 부모 클래스에 선언된 필드와 메소드만 접근이 가능하다.
변수는 자식 객체를 참조하지만 변수로 접근 가능한 멤버는 부모 클래스 멤버로만 한정된다.
<예외>
메소드가 자식 클래스에서 오버라이딩 되었다면 자식 클래스의 메소드가 대신 호출된다.
[하나의 배열로 객체 관리]
class Car{
Tire tire1 = new Tire("앞왼쪽",6);
Tire tire2 = new Tire("앞오른쪽",2);
Tire tire3 = new Tire("뒤왼쪽",3);
Tire tire4 = new Tire("뒤오른쪽",4);
}
class Car{
Tire[] tire={
new Tire("앞왼쪽",6),
new Tire("앞오른쪽",2),
new Tire("뒤왼쪽",3),
new Tire("뒤오른쪽",4)
};
}
[강제 타입 변환]
강제 타입 변환 : 부모 타입을 자식 타입으로 변환하는 것
※ 자식 타입이 부모 타입으로 자동 변환한 후, 다시 자식 타입으로 변환할 때 강제 타입변환을 사용할 수 있다.
자식 타입이 부모 타입으로 자동 변환하면, 부코 타입에 선언된 필드와 메소드만 사용 가능하다는 제약 사항이 따른다.
만약 자식 타입에 선언된 필드와 메소드를 꼭 사용해야 한다면 강제 타입 변환을 해서 다시 자식 타입으로 변환한 다음 자식 타입의 필드와 메소드를 사용하면 된다.
[객체 타입 확인(instanceof 연산자)]
레퍼런스가 가리키는 객체의 타입 식별을 위해 사용
객체레퍼런스 instanceof 클래스타입
연산 결과는 boolean : true/false
[업/다운 캐스팅]
업캐스팅(upcasting) : 서브 클래스(자식 클래스) 객체를 슈퍼 클래스(부모 클래스)타입으로 타입 변환,(강제형변환)
객체 내에 부모 클래스의 멤버만 접근 가능
다운캐스팅(downcasting) ; 슈퍼 클래스(부모 클래스) 객체를 서브 클래스 타입으로 변환, (개발자의 명시적 타입 변환 필요)
잘못된 정보는 댓글에 남겨주시면 감사하겠습니다!😊
댓글과 좋아요는 큰 힘이 됩니다!
[ 참고자료 ]
'JAVA' 카테고리의 다른 글
[JAVA] 자바 인터페이스 (0) | 2023.05.02 |
---|---|
[JAVA] 자바 추상 클래스와 추상 메소드 (0) | 2023.05.01 |
[JAVA] 자바 클래스 상속 (0) | 2023.04.27 |
[JAVA] 자바 상속 개념 (0) | 2023.04.26 |
[JAVA] 자바 접근 제한자 (0) | 2023.04.25 |