다형성

mingggkeee·2022년 1월 20일
0

Java

목록 보기
4/20

다형성

  • 하나의 객체가 많은 형(타입)을 가질 수 있는 성질
  • 상속 관계에 있을 때 조상 클래스의 타입으로 자식 클래스 객체를 레퍼런스 할 수 있다.

다형성의 활용

예1) 다른 타입의 객체를 다루는 배열

  • 배열의 특징 - 같은 타입의 데이터를 묶음으로 다룬다.
  • 다형성으로 다른 타입의 데이터 (Person, SpiderMan)를 하나의 배열로 관리
  • Object의 배열은 어떤 타입의 객체라도 다 저장할 수 있음

예2) 매개변수의 다형성

  • 무언가를 출력하고 싶다!!

참조형 객체의 형 변환

  • 묵시적 캐스팅
    • 조상을 무작정 자손으로 바꿀 수는 없다.
    • 무늬만 바꾸는 것..? 자식의 객체에는 접근이안됨..
    • instanceof 연산자..!
  • 명시적 캐스팅

참조 변수의 레벨에 따른 객체의 멤버 연결

  • 상속 관계에서 객체의 멤버 변수가 중복될 때
    • 참조 변수의 타입에 따라 연결이 달라짐
  • 상속 관계에서 객체의 메서드가 중복될 때(메서드가 override 되었을 때)
    • 무조건 자식 클래스의 메서드가 호출됨 -> virtual method invocation
    • 최대한 메모리에 생성된 실제 객체에 최적화된 메서드가 동작한다.
profile
만반잘부

0개의 댓글