객지지향 그리고 오버로딩 & 오버라이딩

wisdom·2022년 7월 21일
0
  • 객체의 내부 상태는 외부에서 접근하지 못하도록 감춰야 한다. 대신 외부에 공개하는 퍼블릭 인터페이스를 통해 내부 상태에 접근할 수 있도록 허용한다.

    • 객체는 다른 객체의 인터페이스에 공개된 행동을 수행하도록 요청할 수 있다.
    • 요청을 받은 객체는 자율적인 방법에 따라 요청을 처리한 후 응답한다.
  • 객체가 다른 객체와 사용호작용할 수 있는 유일한 방법은 메시지를 전송하는 것 뿐이다.

    • 다른 객체에게 요청이 도착할 때 해당 객체가 메시지를 수신했다고 이야기 한다.
    • 메세지를 수신한 객체는 스스로의 결정에 따라 자율적으로 메시지를 처리할 방법을 결정한다. 이처럼 수신된 메시지를 처리하기 위한 자신만의 방법을 메서드라고 한다.
  • 중복 코드를 제거하기 위한 목적으로 공통의 코드를 보관할 수 있는 장소를 추상클래스로 구현할 수 있다.

    • 인스턴스를 생성할 필요가 없다면 추상클래스로 구현하면 된다.
  • 부모 클래스에 기본적인 알고리즘의 흐름을 구현하고 중간에 필요한 처리를 자식 클래스에게 위임하는 디자인 패턴을 TEMPLATE METHOD 패턴이라고 부른다.

오버라이딩

  • 부모 클래스에 정의된 같은 이름, 같은 파라미터 목록을 가진 메서드를 자식 클래스에서 재정의하는 경우
  • 자식 클래스의 메서드는 오버라이딩한 부모클래스의 메서드를 가리기 때문에 외부에서는 부모 클래스의 메서드가 보이지 않는다.

오버로딩

  • 오버로딩은 메서드의 이름은 같지만 제공되는 파라미터의 목록이 다르다.
  • 오버로딩한 메서드는 원래의 메서드를 가리지 않기 때문에 이 메서드들은 사이 좋게 공존한다.
profile
문제를 정의하고, 문제를 해결하는

0개의 댓글