base: 파생 클래스에서 공개 또는 보호된 기본 클래스 구성원에 대한 접근을 가능하게 하는 데 사용되지만, 이는 구성자, 인스턴스 메서드, 인스턴스 속성 접근자에만 해당됩니다. MSDN 요약의 구체적인 특징은 다음과 같습니다: (1) 기본 클래스 내 다른 메서드들로 덮어쓴 메서드를 호출합니다. (2) 파생 클래스 인스턴스를 생성할 때 호출해야 할 기본 클래스 생성자를 지정한다. base는 파생 클래스 객체가 초기화될 때 기본 클래스와 통신하는 데 일반적으로 사용됩니다. 베이스는 기본 클래스의 공개 및 보호된 멤버에 접근할 수 있으며, 개인 멤버는 접근할 수 없습니다. 다층 상속에서 base가 부모 클래스를 가리킬 수 있는 두 가지 상황이 있습니다: 첫째, 과부하가 발생하면 base는 직접 상속하는 부모 클래스 구성원의 메서드를 가리킵니다; 과부하가 없는 경우, 베이스는 부모 메서드의 공용 또는 보호된 메서드를 가리킬 수 있습니다.
this: 클래스를 참조하는 현재 인스턴스, 즉 상속된 메서드는 보통 이를 숨길 수 있습니다. MSDN의 요약 기능은 주로 다음과 같습니다:
(1) 비슷한 이름으로 숨겨진 멤버를 제한한다 (2) 객체를 매개변수로 다른 메서드에 전달한다 (3) 선언 인덱서 이는 클래스 객체 자체를 가리키며, 접근 요소의 접근 수준과 관계없이 클래스의 모든 상수, 필드, 속성, 메서드 멤버에 접근하는 데 사용됩니다. 이것은 물체 내부에만 한정되어 있고 물체 밖에서는 볼 수 없기 때문에, 이것이 기본 개념입니다. 또한, 정적 멤버는 객체의 일부가 아니므로 정적 메서드에서 참조할 수 없습니다.
일반 규칙:
1. 베이스와 이것을 가능한 한 적게 사용하세요. 서브클래스 이름 충돌을 피하고 한 창조자에서 다른 창조자를 호출하는 것 외에도, 기본 생성기를 사용하면 원치 않는 결과를 초래할 수 있습니다. 2. 기본 및 정적 멤버 내 사용은 허용되지 않습니다. 그 이유는 base와 this가 클래스, 즉 객체의 두 인스턴스 모두에 접근할 수 있지만, 정적 멤버는 객체가 아닌 클래스에서만 접근할 수 있기 때문입니다. 3. 기저 기반은 다형성을 달성하도록 설계되었다. 4. this 또는 base 키워드를 사용하여 하나의 생성자만 지정하므로, 이 키워드와 base는 동시에 생성자에 적용할 수 없다. 5. 간단히 말해, base는 파생 클래스 내 재작성된 기본 클래스 멤버에 접근하는 데 사용됩니다; 물론 이 범주의 구성원, 즉 상속된 공공 소유 및 보호 회원을 포함해 접근하는 데 사용됩니다. 6. 기본 외에도, 기본 클래스 멤버에 접근하는 또 다른 방법은 표시되는 타입을 변환하는 것입니다. 단지 이 방법이 정적인 방법일 수는 없다는 점입니다. |