2012-02-23 12 views
0

개체 및 부모 클래스와 자식 클래스에서 메서드를 호출 할 수있는 능력에 대한 질문이 있습니다.기본 클래스의 상속

기본 클래스에 메소드()가 있습니다. 주에는 objectFromBaseClass와 objectFromChildClass가 있습니다. 두 객체 모두 기본 클래스의 method()에 액세스 할 수 있습니까?

나는이 아이디어를 파악하려고 노력하고있다.

답변

4

method()가 private으로 선언되지 않는 한 yes입니다. method()가 정의한대로 private로 선언되면 기본 클래스 만 액세스 할 수 있습니다. method가 protected로 선언되면 기본 클래스와 파생 클래스가 모두 액세스 할 수 있습니다. 메서드가 내부 선언 된 경우 같은 어셈블리 (dll) 내에서 액세스 할 수 있습니다. method가 public으로 선언되면 모든 곳에서 액세스 할 수 있습니다.

+0

다소 복잡합니다. 메쏘드가'protected'로 선언되면 파생 클래스의 메쏘드는 파생 클래스의 인스턴스에서만 그 protected 메쏘드를 호출 할 수 있습니다. 기본 클래스의 인스턴스 또는 동일한 기본 클래스에서 파생 된 다른 클래스에서 해당 보호 된 메서드를 호출 할 수 없습니다. –

2

Access Modifiers (C# Programming Guide)Access Modifiers을 따르십시오.

이 링크를 클릭하면 회원의 액세스 가능성에 대한 의심이 사라지게됩니다.

및 하위 클래스 모두에서 method() protected 또는 public으로 액세스해야합니다. private 메소드는 클래스 내에 생성되어 선언/생성 된 에 있습니다.

1

예. Bojin Li가 말했듯이, 메서드 앞에 선언 된 'private'와 같은 액세스 한정자가 없으면 메서드의 기본 클래스에서 상속 된 모든 클래스에 "method()"멤버가 있습니다.

기본적으로 'public'액세스 수정자가없는 클래스 멤버는 비공개로 간주됩니다.

"다른 사람이 이미 언급 한 내용을 보지 못했다"는 두 가지 사실은 "method()"가 정적 인 경우 언제든지 액세스 할 수 있으므로 상속 할 필요가 없다는 것입니다 클래스에서 "method()"를 얻으려면 한 번에 하나의 클래스에서만 상속받을 수 있습니다.

관련 문제