2011-02-28 9 views
3

기본 생성자와 매개 변수화 된 생성자의 두 생성자가있는 기본 클래스가 있습니다. 다른 클래스는 기본 클래스를 상속받으며 기본 생성자 만 있습니다. 파생 클래스에서 기본 클래스의 매개 변수화 된 생성자를 호출하려면 어떻게해야합니까?파생 클래스에 매개 변수화 된 생성자가없는 경우 어떻게 파생 클래스에서 기본 클래스의 매개 변수화 된 생성자를 호출 할 수 있습니까?

답변

8

그것은 당신의 질문은 완전히 명확하지 있는지,하지만 난 당신이 중 하나가 아이 클래스에 명시 적 매개 변수가없는 생성자를 추가 할 의심 :

// Parameterless child constructor calling parameterized base constructor 
public Child() : base("foo", "bar") { 
} 

을하거나 매개 변수 및 매개 변수가없는 한 모두 추가 :이 상속되지 이되는 생성자

public Child() { 
} 

public Child(string foo, string bar) : base(foo, bar) { 
} 

주 - 그래서 그냥 기본 클래스 하 때문에 특정 생성자 서명이 해당 서명을 사용하여 클래스를 인스턴스화 할 수 있다는 것을 의미하지는 않습니다. 하위 클래스는 자체적으로 제공해야합니다.

컴파일러가 제공하는 매개 변수가없는 생성자는 항상 기본 클래스의 매개 변수가없는 생성자를 호출합니다.

2

이와 비슷한? 여기

class Parent 
{ 
    public Parent(){} 
    public Parent(string s) {} 
} 

class Child : Parent 
{ 
    public Child() : base("42") { } 
} 
1

당신은 갈 :

// Parent class 
class Parent 
{ 
    public Parent() 
     { 
     // Paremeterless constructor 
     } 

     public Parent(string a, int b) 
     { 
     // Paremterised constructor 
     }  
} 


// Child class  
class Child : Parent 
{ 
    public Child() 
       :base("hi", 10) 
     { 
     // Parameterized constructor of the base class is invoked 
     } 
} 
관련 문제