2017-02-02 1 views
0

나는 조셉 알바 하리에 의해 책에서 "요컨대 C 번호를"아래의 말씀을 읽는다의미는

인터페이스가 포함 할 수있는 유일한 방법, 속성, 이벤트를 및 인덱서, 우연히은 추상이 될 수있는 클래스의 멤버입니다. 저자는 내가 생각 경우가 너무 비 동시 적으로 발생한다는 왜 저 생각을 가지고

것은입니다. 나는이 두 가지 경우 모두에서 이러한 가능성을 이끌어내는 요인과 같다고 생각한다.

여기 내가 보는 방법입니다. 지금까지 내가 아는 한, 단지 다음과 같은 항목이 C#으로 추상적으로 선언 할 수 있습니다

  1. 방법
  2. 재산권
  3. 인덱서 네 가지 위의

이제

  • 이벤트 물론 추상 클래스뿐만 아니라 인터페이스에도 존재할 수 있습니다. 그래서,이 사실은 클래스 나 인터페이스가 될 수있는 모든 것을 추상화 할 수있는 핵심 드라이버입니다.

    이제는 작성자가 컨테이너 (추상 클래스 또는 인터페이스)가 포함 할 수있는 요소에 대해 다른 방식으로 생각하는 것처럼 보입니다. 결국 우연히 추상 멤버의 종류가 가능해집니다. 이 두 장소에서 컴파일러 디자인이 완료된 후에도 동일하게 나타납니다.

    인터페이스 내부에서 허용되는 추상 멤버를 몰아내는 다양한 내부 의미를 알고 있는지 알고 싶습니다. 필자가 바라는 방식은 위의 네 가지 유형의 항목 만 추상이 될 수 있으므로 동일한 사실이 인터페이스 또는 추상 클래스가 될 수있는 컨테이너에 존재할 수있는 가능성을 이끌어 내야합니다.

  • +1

    '... 그리고 결국 우연히 결국이 두 장소에서 가능한 추상 멤버의 종류는 컴파일러 디자인이 완료된 후에도 동일하지 않은 것으로 우연히 발생합니다. '나는 우연히 * 우연히도 * 우연히 *의 의미를 혼란스럽게 생각합니다 - 이것들은 반대의 의미를 가지고 있습니다. 필자는 인터페이스가 클래스에서 추상이 될 수있는 멤버 만 포함 할 수 있다는 것은 우연이 아니라고 말하고있다. 나는 생각한다. –

    답변

    1

    인터페이스는 추상 멤버 만 포함하는 추상 클래스로 생각할 수 있습니다 (추상 클래스는 비 추상 멤버도 포함 할 수 있음).

    따라서 추상적 클래스에서 추상이 될 수있는 멤버 유형이 인터페이스의 멤버 유형과 동일하거나 그 반대 인 경우는 우연이 아니라 필요한 결과입니다.