2014-02-11 1 views
0

파생 클래스에서 멤버가 재정의되거나 숨겨져 있으면 기본 클래스 멤버가 기본 클래스 멤버를 호출하는 데 사용된다는 사실을 알고 있습니다. 그리고 저는 분명합니다. 생성자를 연결하여 기본 클래스 생성자에 매개 변수를 전달해야하는 경우입니다.기본 키워드의 사용법은 무엇입니까? 그러나 부모 클래스 생성자는 기본적으로 호출됩니다.

아래의 예에서. 기본 키워드를 사용하지는 않았지만 그 키워드가 호출되었습니다. 그래서 요점은 무엇입니까?

class Person 
{ 
    public long Id { get; set; } 
    public string Name { get; set; } 
    public static string Company { get; set; } 

    static Person() 
    { 
     Company = "Company"; 
    } 

    public Person() 

    { 
     Id = 0; 
     Name = "Name"; 
    } 

    public Person(long id) 
    { 
     Id = id; 
     Name = this.Name; 
    } 

    public override string ToString() 
    { 
     return string.Format("Id:{0}\tName:{1}\tCompany:{2}", Id, Name,Company); 
    } 
} 

class Employee : Person 
{ 
    public long EmpId { get; set; } 
    public Employee() 
    { 

    } 
} 

class Manager : Employee 
{ 
    public string WorkingWith { get; set; } 

    public Manager() 
    { 

    } 
} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     Manager manager = new Manager(); 

     Console.ReadKey(); 

    } 
} 

파생 클래스에서 매개 변수화 된 생성자를 호출하는 추가 옵션이 있습니까?

+1

나는 당신이 찾고있는 답을 모른다. 예. 기본 클래스가 원하는 클래스가 아닌 경우 * 호출 할 기본 클래스 생성자를 선택하는 데 사용할 수 있습니다. –

답변

3

는 네, 정확히 왜 당신이 당신의 파생 클래스 생성자에서 base를 사용 : 기본 클래스의 매개 변수가있는 생성자 호출 : 당신은 : base()에 의해 매개 변수가 기본 클래스 생성자를 호출 할 수 있습니다

: base(10, "test") 

을하지만, 이미 말했듯이, 그것의 무의미하다. 어쨌든 부름을받을 것이기 때문이다.

+0

감사합니다. – Sravan

+1

그러면 어쨌든 암시 적으로 호출되면'base()'를 호출하는 것이 좋거나 나쁘다는 새로운 논의로 연결됩니다. – Krumelur

관련 문제