JAVA/교재

JAVA 11- 다형성과 타입 변환

record2080 2025. 1. 17. 23:48

01. 클래스에서의 타입 변환

02. 다형성

03. instanceof 연산자

04. 오버로딩과 오버라이딩

 

자바의 두가지 대표적인 타입 변환

1.자료형 변환

2.클래스의 객체 타입 변환

 

<클래스의 자동타입 변환>

반드시 상속관계에 있는 자식클래스의 객체를 부모타입으로 변환할 때 적용할수 있다.

하지만 , 같은 상위 계층을 가지고 있더라도 두 클래스의 상속 관계가 없다면 타입 변환 불가능함

부모 클래스(타입)객체 변수=new 자식 클래스();

자식 객체를 만들면서 바로 부모타입으로 변환할 때.

 

부모클래스(타입)객체 변수=자식 객체;

만들어진 자식 객체를 부모타입으로 변환할 때.

 

<클래스의 강제타입 변환>

자식 객체가 부모 타입으로 자동 타입변환을 한 후, 다시 자식 타입으로 변환하는 것

개발자가 직접 명시해야만 할 수 있음

단, 모든 부모 타입 객체를 자식 타입으로 변환할 수 있는 것은 아니다.

반드시 부모 타입으로 자동타입 변환되었던 자식객체를 다시 자식 타입으로 변환할 떄만 강제 타입 변환을 사용할 수 있다.

((자식타입) 부모타입).메서드();

일회성으로 타입변환일 필요할 때

 

자식 타입변수=(자식 타입)부모타입;

자식 클래스의 멤버들에 대한 접근이 여러번 필요할 때

 

<다형성>

하나의 타입으로 다양한 객체를 사용할 수 있느 것

객체가 특정 클래스의 필드가 되면서 하나의 부품처럼 사용될 수 있다.

 

<instanceof 연산자>

부모 타입으로 타입이 변환되어 저장된 변수는 안에 어떤 객체가 담겨 있는지 직접 확인하지 않는 이상, 내부객체를 알기가 쉽지 않아 , 자바는 인스턴스오브 연산자를 제공해 인스턴스의 실제 타입을 확인할 수 있게 해준다.

-instanceof 기준으로 왼쪽 객체가 생성될 때 오른쪽 타입으로 생성됐는지 확인하는 연산자
-맞은면 t, 아니면 f를 반환해 만약 null를 가지고 있으면 false를 반환한다.

 

※ instanceof 연산자와 ==연산자의 차이

-A instanceof B : 객체변수 A가 객체타입 B로 생성된 것인지 확인

-C==D : 객체변수 C와 D가 같은 객체를 참조하고 있는지 확인

 

<오버로딩과 오버라이딩>

-오버로딩 : 하나의 클래스 안에서 같은 이름의 메서드를 여러 개 구현하고 필요에 따라 메서드를 선택해 사용할 수 있음

-오버라이딩 : 부모클래스에서 상속받은 메서드를 재정의해 자식 클래스용 메서드를 구현하고 자식 객체를 통해 메서드를 호출.

 

 

 

'JAVA > 교재' 카테고리의 다른 글

JAVA 01- 자바 프로그래밍의 기본  (0) 2025.01.19
JAVA 12- 추상 클래스와 인터페이스  (0) 2025.01.18
JAVA 10- 상속  (0) 2025.01.17
JAVA 09- 생성자  (0) 2025.01.15
JAVA 08- 메서드  (0) 2025.01.14