2013-05-30 4 views
0

저는 C#을 공부 중입니다. 나는 추상적 인 수업에 대해 몇 가지 우려를 가지고있다. 추상 클래스는 인스턴스를 만들 수 없습니다. C#이 추상 클래스의 생성자를 지원하는 이유는 무엇입니까? 여기에 주요 목적은 무엇입니까? 많은 감사.C# 추상 클래스 생성자

답변

5

추상 클래스는 여전히 구성의 일부로 초기화해야하며, 직접 인스턴스화 할 수는 없지만 인스턴스화되는 상속 유형의 일부로 구성되므로 여전히 필요합니다. 그 자아와 관심사에 대한 창조 통제의 정도.

0

클래스 abstract 클래스에서 파생 된 클래스에는 해당 생성자에서 "체인"하는 인스턴스 생성자가 필요합니다.

Grant가 말한 것처럼 추상 클래스의 생성자는 추상 클래스가 가질 수있는 ("구체적") 상태를 많이 설정할 수 있습니다.

참고 : 추상 유형의 인스턴스 생성자는 이 아니며이되어야 public이되어야합니다. 그것은 당신의 질문에 이유 때문에, 혼란 스러울 것입니다. 대신 protected (또는 가능하게는 internal (아니요,)이되도록하십시오. 당신이 명시 적으로 인스턴스 생성자를 작성하지 않는 경우

는, 컴파일러는 당신을 위해 "기본"생성자를 생성하고, 그 추상 클래스에 대한 protected 될 것입니다.