2010-07-15 5 views

답변

18

아니요. C#은이 버전을 지원하지 않습니다. 생성자는 이며 파생 클래스에서는이 상속되지 않지만 "체인화"될 수 있습니다. 이것은 아마 당신이하고 싶은 일일 것입니다.

파생 클래스가 일종의 초기화를 수행해야 함을 나타내려면 기본 클래스의 생성자 (간접적으로 하위 클래스의 생성자)가 생성시 호출하는 추상 또는 Initialise 메서드를 만들 수 있습니다.

CLR (또는 관련 CIL 언어)이 실제로 지원하는지 여부는 확실하지 않습니다. 언급 한 이유 때문에 C# 내에서 거의 사용되지는 않을지 모르지만 의심 스러울 것입니다.

18

아니요, 생성자를 추상으로 표시 할 수 없습니다. 추상 클래스에서는 생성자가 일반적으로 protected으로 표시되지만, 적어도 내가 추천하는 것이 좋습니다.

+6

파생 된 클래스의 체인을 통해서만 액세스 할 수 있으므로 실제로는 'protected'또는 일반 'public'으로 표시할지 여부가 중요하지 않습니다. 말하자면 '보호 된'으로 표시하는 것은 의미 론적 관점에서 볼 때 아마도 합리적입니다. – Noldorin

+1

http://msdn.microsoft.com/en-us/library/ms182126(v=vs.100).aspx - 권위있는 의미 론적 관점에서 분별력있는 –

2

기본적으로 없습니다.

추상 클래스를 구체적인 하위 클래스에서 재정의해야하며 생성자를 재정의 할 수 없으면 오버로드 만 수행하면됩니다.