Java/자바

다형성

필리힐리 2021. 1. 21. 22:19

다형성은 자바의 특징 중 하나인데

같은 클래스, 메소드지만 다양하게 동작하는 걸 말한다

같은 메소드를 파라미터를 다르게 줘 사용하는 오버로딩이 대표적이다

 

자식 클래스를 인스턴스화 해서 부모 클래스 타입 변수에 대입 시키면 부모 클래스에서 정의된 것만 사용할 수 있다

자식 클래스에서 추가적으로 정의한 메소드는 사용이 불가하고 재정의한 것만 사용할 수 있다

 

클래스 B는 A를 상속 받으므로 클래스 A 타입인 obj에 대입이 가능하다

하지만 데이터 타입이 A이기 때문에 B에서 추가적으로 정의한 메소드 y는 사용할 수 없고 x만 사용이 가능하다

위 예시에서 클래스 B의 메소드 x는 A의 메소드를 재정의(overriding)한 것이기 때문에 사용할 수 있다

 

Calculator라는 부모 클래스에 인스턴스를 대입 시킴으로써 중복을 없앴고

execute라는 메소드의 파라미터를 통해 코드의 양을 많이 줄일 수 있었다

 

'Java > 자바' 카테고리의 다른 글

버블 정렬  (0) 2021.02.14
정적 바인딩 vs 동적 바인딩  (0) 2021.02.11
Interface  (0) 2021.01.21
Final, Abstract  (0) 2021.01.21
접근 제어자  (0) 2021.01.19