자바의 다형성

JJ·2024년 7월 5일

backEnd

목록 보기
5/16

다형성의 사전적 정의는, 같은 종의 생물이면서도 어떤 형태나 형질이 다양하게 나타나는 현상이다.

다형성

다형성은 자바의 대표적인 특징이라고 볼 수 있다.
자바에서 다형성은 주로 오버라이딩, 오버로딩으로 구현된다.

같은 자료형에 여러가지 타입의 데이터를 대입!

다음 중 다형성은 뭐일까?

1. 하나의 타입에 여러 가지 객체를 담을 수 있다.
Phone phone = new Phone();
Phone phone = new Galaxy();

+ Phone은 iPhone도 담을 수 있다.

2. 하나의 객체를 여러 가지 타입에 담을 수 있다. 
Phone phone = new Galaxy();
Galaxy phone = new Galaxy();

+ 인터페이스를 여러 개 구현한다 ex) implements A, B

정답은 둘 다

타입 변환

자바는 자료형(타입) 변환뿐만 아니라 클래스의 객체 타입 변환이 가능하다.

클래스 자동 타입 변환

  • 개발자가 직접 명시해주지 않아도 자동으로 타입 변환이 일어나는 것
  • 자식 객체를 만들면서 바로 부모 타입으로 변환할 때
    • 부모 클래스(타입) 객체변수 = new 자식 클래스();
  • 만들어진 자식 객체를 부모 타입으로 변환할 때
    • 부모 클래스(타입) 객체변수 = 자식객체;
  • 유의사항
    • 오버라이딩한 메소드는 클래스 타입 변환을 하더라도 자식 메소드를 호출한다
    • 클래스 타입 변환을 한 클래스는 더이상 자식 클래스만의 멤버들을 호출할 수 없다

Instanceof

객체 instanceof 타입(클래스명): instanceof 기준 왼쪽 객체가 생성될 때 오른쪽 타입으로 생성되었는지 확인하는 연산자

profile
🎀👩🏻‍💻✨🐾🌷🦅

0개의 댓글