본문 바로가기
개발/자바

다형성

by kakk789 2021. 12. 27.

특징

1. 상속을 하면 기능이 급격히 늘어나고, 클래스들 간의 호환성이 떨어짐(클래스를 다른 클래스로 교체하기 어려움)

    그래서 자식클래스를 부모클래스로서 동작하도록 하는 기술이 있음

 

2. 언제 쓰냐면, 기능이 클래스에 너~~무 많을 경우 오히려 안 좋을 경우가 있음

   즉, 해당 클래스에서 나한테 필요한 기능만 사용하고 싶을 때 사용.

 

3. 같은 인터페이스를 사용하는 클래스는 누구든지 올 수 있다.

 

ex 1) 부모클래스 ojb = new 자식클래스();

   --> 부모 클래스의 타입으로 자식클래스의 인스턴스를 만들 수 있음.

   --> 개념 잡을 때 주의할 것은 부모의 개념이라서 자식한테 있는 모든 메소드를 사용할 수 있을 것처럼 보이는데
       전혀아님. 당연한건데,,, 헷갈렸다. 자식이 어떻게 클지는 부모도 모른다,, 이런 식으로 생각하면 개념잡기 편함.

   --> 여러 클래스를 하나의 타입(상위 클래스)으로 핸들링 할 수 있음

              

ex 2) [특정인터페이스] inter = new 클래스();

   --> 만들어 질 인스턴스가 특정 인터페이스의 기능만 사용하고 싶을 때. 

   --> 그니까 인터페이스를 3개 구현한 A클래스가 존재하고, A클래스 이용하여 인스턴스를 a1, a2, a3 생성했다고 가정

        각 인스턴스 별로 A클래스에서 구현한 [구현1], [구현2], [구현3] 메소드를 사용하고 싶을 경우가 분명히 있음.

        이럴경우 타입으로 인터페이스를 선언하고 인스턴스를 만듦

         구현1 a1 =new A클래스;
         구현2 a2 =new A클래스;
         구현3 a3 =new A클래스;

클래스
메인 메소드

반응형

댓글