카테고리 없음

아이템 10.베이스 클래스가 업그레이드된 경우에만 new 한정자를 사용하라.

공부를하자 2023. 7. 1. 15:55

*들어가기 앞서

상속

 -다른 클래스와 코드를 물려받는 행위

 -클래스의 필드, 메소드 프로퍼티를 상속한다

-*오버라이딩

  -기반 클래스에서 선언된 메소드를 파생클래스에서 재정의 하는

  - 기반 클래스에서는 오버라이딩 메소드를 미리  virtual 한정해야한다

  - 파생클래스에서는 virtual 표시된 같은 이름의 메서드를 override 붙여 재선언한다.

  - private 선언된 메서드는 불가능하다.

1.코드예시

-MyOtherClass   MyClass 상속하지만 new 연산자는 새로운 메서드를 정의하는 것이므로 출력 결과는 다르다.

-이것은 상속한 클래스 간의 일관성을 해친다.

 

 

결론

new 한정자는 베이스 클래스를 업그레이드하는 경우나

코드를 일일이 수정하기 어렵거나 외부 라이브러리리에서 코드를 수정할 없는 경우.

사용하자.