2012-06-27 5 views
0

사람들추상 메서드가없는 C#의 추상 클래스

나는 추상적 인 클래스에서 추상적 인 메서드를 사용하지 않는다는 것을 알기에 놀랐다. 그러나 규칙마다 우리는 적어도 하나의 추상적 인 방법을 가지고 있어야합니까? : S

답변

11

아니요, 추상 클래스에는 추상 메소드가 필요하지 않습니다.

제한 사항은 다음과 같습니다 클래스가 추상 메소드, 프로퍼티, 인덱스 또는 이벤트가

  • 경우 클래스는 추상해야합니다.
  • 추상 클래스를 인스턴스화 할 수 없습니다.

추상 클래스에 추상 메소드가 있어야한다는 요구 사항은 없습니다.

+0

내게 분명히 설명해 주셔서 감사합니다. 감사합니다. 환호 ... – Learner

2

추상 클래스를 사용하기 위해 추상 메소드가 필요하지 않습니다. 때로는 클래스가 인스턴스화되지 못하도록 제한하고이를 클래스 상속 계층 구조로 지정할 때 유용합니다. 모든 메소드는 추상 클래스에서 정의 할 수 있습니다.

+1

고맙습니다. :) – Learner

5

아니요, 이것은 전적으로 유효합니다. 사실, C#의 static 클래스는 모두 추상적 이고 .NET의 클래스를 봉인합니다. (당신은 비록 C#을 소스 코드와 함께 밀봉하는 추상 클래스를 선언 할 수 없습니다.)

는 C# 4 사양이 명시 적으로 이것을 호출 섹션에 10.1.1.1 (추상 클래스) :

추상에게 클래스는 추상 멤버를 포함하도록 허용되지만 필수는 아닙니다.

이없는 추상적 인 회원들과 추상 클래스를 가지고 확실히 드문, 그러나 그것은 전례가 아니에요. (. 그것은 추상적 일 수있다 단지 방법이 아니다 잊지 마세요 - 당신이 너무 추상적 인 이벤트와 속성을 가질 수) MSDN - abstract에서

+0

나는 추상적 인 봉인 된 수업을 한 번도 시도하지 않았지만, 왜이 문제를 방지 할 수 있습니까? (나는 새로운 Q로 질문하지 않았다. 왜냐하면 나는 주위를 검색하지 않았기 때문에, 짧은 힌트 나 링크로 당신에게 가능하다면). –

+0

정말 고마워, 완벽 해. – Learner

+0

@SaeedAmiri : 나는 추상적 클래스의 모든 목적이 다른 아이 클래스의 기본 클래스가되어야한다고 생각한다 .Jon은 좋은 이유를 제시하고 있는가? 제발 날 수정하지 않으면 ..... 감사합니다 .... 나는 새롭고 배워야 흥분합니다. – Learner

5

(강조는 추가) :

가 포함 할 수있는 추상 클래스 추상 메소드와 접근 자.

추상 클래스에는 비 추상적 인 메소드 만 포함될 수도 있고 원한다면 빈 클래스 일 수도 있습니다. 그것은 여러분에게 인스턴스화할 수없는 기본 클래스를 제공합니다.이 클래스는 폴리 모피즘에 유용 할 수 있습니다.