2012-06-18 6 views
0

하나의 부모 클래스와 하나의 자식 클래스가 있습니다. 부모에게는 매개 변수를 초기화하는 생성자가 있습니다.C#의 자식 클래스에있는 부모 클래스의 생성자

제 질문은 : 아이가 부모 생성자를 어떻게 보입니까? 자식을위한 생성자를 정의 할 수 있습니까?

+0

보기로는 무엇을 의미합니까? –

답변

0

어린이 클래스의 번호로 base(...)을 사용할 수 있습니다.

foreacmple : 당신은 단지 아무것도을하지, 일부 특정 매개 변수를 필요는 ctor를 호출 할 때 BaseClass 기본 ctor 길에 의해 를 호출 할 것이다 발생하지 않는 경우

public class Child : BaseClass 
{ 
    public Child() : base(/*some parameters*/) //CALLING BaseClass parametrized ctor 
    { 
    } 
} 

그냥주의 Child 클래스입니다.

+0

자식 클래스에 새 생성자를 만들면 어떻게됩니까? 매개 변수는 자식 또는 부모의 생성자에 따라 초기화됩니다. –

+0

매개 변수화 된 costructor를 사용하는 경우 기본 클래스의 ** 자동으로 ** ** ** 기본 * 생성자라고 할 수있는 유일한 ctor입니다. 따라서 매개 변수화 된 경우에는 적절한 매개 변수를 선택하십시오. – Tigran

0

어린이를위한 생성자를 정의해야합니다. 물론

public class Parent { 
    public Parent() { 
    ... 
    } 
} 

public class Child : Parent { 
    public Child() : base() { // calls Parent.ctor 
    } 
} 
-1

: 당신은 생성자의 프로토 타입 및 구현 사이 : base()를 사용하여 기본 클래스의 생성자를 호출 할 수 있습니다.

"기본"키워드 뒤에 있습니다.

public class Fruit 
{ 
    string TypeOfFruit { get; set; } 

    public Fruit (string typeOfFruit) 
    { 
     TypeOfFruit = typeOfFruit; 
    } 

} 

public class Apple : Fruit 
{ 
    string AppleType { get; set; } 

    public Apple(string appleType) : base("Apple") 
    { 
     AppleType = appleType; 
    } 

} 
1

이 상속 샘플을 보여줍니다

  • 어떻게 자녀에 새로운 생성자에서 부모 생성자를 호출하는 부모 생성자

코드에 필요한 매개 변수를 전달하는 방법을

  • 샘플 :

    public class Parent 
    { 
        private object _member; 
    
        public Parent(object member) 
        { 
         this._member = member; 
        } 
    } 
    
    public class Child : Parent 
    { 
        public Child(object member) 
         : base(member) 
        { 
        } 
    } 
    
  • +0

    대단히 감사합니다. 정말 도움이되는 대답입니다. –

    +1

    @AliEssa 문제가 없습니다. StackOverflow에 오신 것을 환영합니다. 도움이 될 답변을 찾으면 투표 할 수 있습니다. 자신의 질문 인 경우 대답을 '수락'하면 가장 좋은 답을 표시 할 수 있습니다. – Aphelion

    +0

    부모에서 하나 이상의 생성자를 만들 때 같은 매개 변수를 사용하는 자식 생성자도 만들어야한다는 것을 알게되었습니다. –

    0

    당신이

    한편 부모의 생성자에 대한 조회하는 방법에 대한 클래스의 생성자를 정의하지 않을 때 당신은 아주 잘 기본 하나를 경우에만 제공됩니다 자식 클래스의 생성자를 정의 할 수 있습니다

    그것은 매개 변수가없는 생성자가 상위 클래스에 존재하는지 검사하고, 컴파일러가 없으면 컴파일러에서 같은 것을 알 수 있습니다. base("This is the string parameter")

    과 같은 매개 변수를 사용하여 상위 생성자를 호출해야합니다.

    다른 것이 있으면 그 질문을 업데이트하십시오.

    관련 문제