일반적인 파생 클래스에서 기본 클래스 메서드 숨기기 "fooString"이라면 그는 fooString.Do(5)
과 fooString.Do("test")
을 모두 호출 할 수 있지만 "fooInt"라는 Foo<int>
오브젝트를 작성하면 파생 클래스의 Do 메소드 만 호출 할 수 있습니다. 나는 T
이 무엇이든 관계없이 두 번째를 선호합니다.나는 기본이 같은 클래스가
이 두 클래스의 Do 메서드는 기본적으로 동일한 작업을 수행합니다. 파생 클래스에있는 매개 변수는 주어진 매개 변수를 사용하여 Dictionary<T, int>
에서 정수를 가져오고이를 사용하여 기본 클래스의 Do 메서드를 호출합니다.
그래서 나는 FooBase
의 Do 메서드를 Foo<T>
에 숨기려고합니다. 어떻게하면 좋을까요? 이것을 극복하는 디자인 어드바이스도 좋을 것입니다.
기본 클래스의 Do를 보호하도록 고려 했습니까? – Hammerstein
@Hammerstein - 네,하지만 공개해야합니다. 기본 클래스는 추상 클래스가 아니며 Do 메서드는 주요 함수이므로 public이어야합니다. –
그들이 같은 일을한다면, 기본 방법을 숨겨서 얻는 것은 무엇입니까? 다른 변종이 호출되면 차이가 없어야합니다. 동일한 변이를 수행하기 때문입니다. – CodesInChaos