C#에서 기본 OOPS 개념에 대한 이해를 분명히하고 싶습니다. 대부분의 인터넷 사이트에서 기본 클래스의 private 멤버 인 은을 상속 받지만 은에 액세스 할 수 없습니다.파생 클래스가 기본 클래스의 private 멤버를 상속하는 경우 생성자가 아닌 이유는 무엇입니까?
파생 클래스는 public, protected, internal 및 보호 된 기본 클래스의 내부 멤버에 액세스 할 수 있습니다. 파생 된 클래스가 기본 클래스의 개인 멤버를 상속 받았지만 해당 멤버에 에 액세스 할 수 없습니다. 그러나 모든 해당 전용 멤버는 여전히 파생 클래스 에 존재하며 기본 클래스 에서 수행 할 것과 동일한 작업을 수행 할 수 있습니다. 예를 들어, 보호 된 기본 클래스 메소드 이 개인 필드에 액세스한다고 가정합니다. 상속 된 기본 클래스 메서드가 제대로 작동하려면 해당 필드가 파생 된 클래스에 있어야합니다.
출처 : http://msdn.microsoft.com/en-us/library/ms173149.aspx
우리가 다음 우리는 는 "기본 클래스의 생성자는 파생 클래스에서 상속되지만, 파생 클래스는 전용 액세스 /를 통해 호출 할 수 있습니다 말할 수있는, 올바른 위의 고려한다면 내 질문은, 파생 클래스 ""인스턴스를 생성하는 동안 기본 키워드와이 생성자를 사용하는 자체 생성자를 외부에서 사용할 수 없습니다. 기본 클래스 생성자를 호출하기 때문에
public class Employee
{
public int salary;
public Employee(int annualSalary)
{
salary = annualSalary;
}
}
public class Manager : Employee
{
public Manager(int annualSalary)
: base(annualSalary)
{
//Add further instructions here.
}
}
그것은 내부 클래스 존재하여야한다. 어쩌면 제 해석이 잘못되었을 수도 있습니다. 아무도 이것을 설명 할 수 있습니까?
미리 감사드립니다.
"파생 클래스는 기본 클래스의 내부 ... 멤버에 액세스 할 수 있습니다."두 클래스가 동일한 어셈블리에있는 경우에만 true입니다. – Henrik
그리고 문제/질문은 정확히 무엇입니까? 기본 생성자를 호출하는 방법과 클래스가 초기화되는 방법을 알고 있습니다. 그렇다면 기본 생성자가 실제로 "존재"하는 것이 왜 중요합니까? –
기본 클래스 생성자를 호출하여 파생 클래스 객체를 만들 수 있는지 묻고 있습니까? –