본문 바로가기
Java/기초

[java기초] 업캐스팅과 다운캐스팅

by Meaning_ 2021. 7. 7.
728x90
반응형

<서브 클래스>

 

- 슈퍼 클래스의 멤버 모두 가지고 있음

- 슈퍼 클래스의 객체로 취급할 수 있음

 

<업 캐스팅>

 

- 서브 클래스 객체를 슈퍼 클래스 타입으로 타입 변환

 

class Person{

   class Student extends Person{

        Student s=new Student();

        Person p=s; //업캐스팅 p=(Person)s; 생략 가능 

     }

}

 

 

<다운 캐스팅>

 

- 슈퍼 클래스 객체를 서브 클래스 타입으로 변환

- 개발자의 명시적 타입 변환

 

 

class Person{

  class Student extends Person{

       Person p=new Student("이제문")//업 캐스팅

 

      Student s=(Student)p;  // 다운 캐스팅 , (Student)의 타입 변환 표시 필요

   }

}

 

<instanceof 연산자와 객체의 타입 판단>

 

- 업캐스팅된 레퍼런스로 객체의 타입 판단 어려움

--> 슈퍼클래스는 여러 서브 클래스가 상속되기 때문

 

- 레퍼런스가 가리키는 객체의 타입 식별을 위해 사용

 

객체레퍼런스 instanceof 클래스타입

 

연산의 결과:true/false의 boolean값

 

if(3 instanceof int

 

-->문법 오류

     instanceof는 객체에 대한 레퍼런스만 사용 

728x90
반응형

'Java > 기초' 카테고리의 다른 글

[java 기초] 예외처리  (0) 2021.07.06
[java 기초] 입출력 스트림과 파일 입출력  (0) 2021.07.05
[java기초] 기본패키지  (0) 2021.07.05
[java 기초] 제네릭과 컬렉션  (0) 2021.07.04
[java기초] 제네릭 프로그래밍  (0) 2021.07.02

댓글