JAVA

▶︎다형성◀︎

chojdsj 2023. 5. 10. 16:37
728x90
다형성

 

 

- 객체 지향 언어의 특징 중 하나로 '다양한 형태를 갖는다' 라는 뜻으로 하나의 행동으로 여러 가지 일을 수행하는 개념 

 

- 상속을 이용한 기술로 부모 클래스 타입 참조변수 하나로 상속 관계에 있는 여러 타입의 자식 객체를 참조할수 있는 기술 

 

 

- 다형성을 이용하여 상속 관계에 있는 하나의 부모 클래스 타입의 배열 공간에 여러 종류의 자식 클래스 객체 저장 가능 

 

 

 

 

 

 

 

 

업 캐스팅(Up Casting)

 

 

- 상속 관계에 있는 부모, 자식 클래스 간에 부모타입의 참조형 변수가 모든 자식 타입 객체의 주소를 참조할 수 있음 

---->> 자식 객체의 주소를 전달받은 부모 타입의 참조변수를 통해서 접근할 수 있는 객체의 정보는 부모로 부터 상속받은 멤버만 참조가능

 

 

- 업캐스팅 상태(부모 참조 = 자식 객체) 에서 부모 메소드 호출 시, 오버라이딩된 자식 메소드 수행 

 

 

 

 

 

정적 바인딩, 동적 바인딩

 

 

 

- 바인딩 : 실제 실행할 메소드 코드와 호출하는 코드를 연결 시키는 것

 

- 정적 바인딩 : 프로그램이 실행되기 전 컴파일 단계에서 메소드와 메소드 호출부를 연결 

 

- 동적 바인딩 : 컴파일 시 정적 바인딩된 메소드를 실행할 당시의 객체 타입을 기준으로 바인딩 되는 것

 

--->> eat 메소드에 커서를 갖다 대면 아래 주석과 같이 부모 타입인 Animal의 eat 메소드를 가리킨다.(정적 바인딩)
           그러나 컴파일시 실행 되는것은 자식 객체의 오버라이딩 된 eat 메소드를 수행한다.(동적 바인딩)

 

 

 

 

 

'JAVA' 카테고리의 다른 글

▶︎예외◀︎  (0) 2023.05.14
▶︎인터페이스◀︎  (0) 2023.05.10
▶︎상속◀︎  (0) 2023.05.03
▶︎객체 배열◀︎  (0) 2023.05.03
▶︎회원가입◀︎  (0) 2023.05.02