다형성 (polymorphism)

ssh·2023년 12월 6일
0

dart

목록 보기
10/22
  • 상속받은 클래스의 기능을 확장하거나 변경하는 것을 가능하게 해준다.
  • 이를 통해 코드의 재사용과 코드길이 감소가 되어 유지보수가 용이하도록 도와준다.
  • 어떤 것을 이렇게도 볼 수 있고, 저렇게도 볼 수 있는 것
    • ex) 핸들이 있고, 오른쪽 페달이 엑셀, 왼쪽이 브레이크인 것 = 차, 그랜저, 버스…
      • 세부적인 부분 부분은 다르지만, 어쨌든 대충 보면 그냥 차다.
    • 같은 부모를 가지는 다른 인스턴스를 동일시하여, 부모 클래스 타입에 담을 수 있다.
    • 마찬가지로, 부모 클래스 타입의 인수나 리턴 값을 이용하여, 다른 클래스를 모아서 처리가 가능하다.
    • 동일시 취급 해도, 각각의 인스턴스는 각 클래스의 정의를 따르고 다른 동작을 한다.
    • 상속에 의한 is-a 관계가 성립한다면, 인스턴스를 부모 클래스 타입의 변수에 대입할 수 있다
    • 부모 클래스 타입 변수에 대입하는 것으로, 퉁 칠 수 있다.
  • 활용 방법
    • 선언을 상위 개념으로 인스턴스 생성은 하위 개념으로 한다.
    • 추상적인 선언 = new 상세 정의
      Character character = Hero('홍길동',100);
    • @override 재정의 다형성을 구축하는 방법은 아래와 같다.
      class 자식클래스 extends 부모클래스{
        
        재정의할 부모클래스 메소드작성

0개의 댓글

관련 채용 정보