이 부분에는 내용이 많고, 영상 파일이 4M를 넘기 때문에 다운로드 시간이 조금 더 길어질 수 있습니다.
내용이 많기 때문에
조금만 더 기다려주세요!상속에만 국한되므로 이전의 모든 항목을 검토로 간주하여 이 섹션의 일부 내용을 두세 번 반복해서 설명합니다. 마스터하세요. 이것이 가장 중요합니다! ! 이 섹션의 리뷰 내용이 확실하지 않은 경우 이전 관련 장을 읽어보세요! !
다음으로 상속에 대해 이야기합니다. 상속을 이해하려면 먼저 상속이 필요한 이유를 알아야 합니다.
뉴스 시스템을 위해 만든 클래스에 이미 데이터베이스 연결, 초기화 및 쿼리, 추가, 삭제, 수정 등과 같은 기능이 있다고 가정해 보겠습니다. .!
그런 다음 몇 가지 다른 쿼리, 수정 등을 수행해야 합니다. 예를 들어 뉴스 열과 사용자 관리는 모두 앞서 언급한 클래스를 사용해야 하지만 차이점은 서로 다른 결과가 필요하다는 것입니다. 무엇을 해야 할까요? 두 가지 방법이 있는데, 하나는 별도로 클래스를 생성하고 데이터베이스 연결 클래스를 두 번 복사하는 것인데, 이 방법의 단점은 언급할 필요가 없을 것 같습니다. 그러면 목표를 달성하기 위해 데이터베이스 클래스의 멤버를 자주 호출할 수도 있습니다. 이런 일이 발생하면 우리 코드가 너무 비대해지지 않을까요? 체중 감량 약이 왜 그렇게 인기가 있는지 아시나요?
우울증, 어떻게 해야 할까요? 간단하게 상속을 사용하여 완성합니다. 상속을 간단히 설명하자면 하위 클래스(파생 클래스)는 상위 클래스(기본 클래스)의 모든 특성을 가지면서 동시에 자체 특성도 갖는다는 것입니다. 이 점은 분명히 해야 할 것 같아요!
참고: .Net 상속은 다른 클래스에서만 직접 상속을 허용하며 동시에 여러 클래스를 상속할 수는 없습니다. 아빠는 하나만 있을 수 있는 것 같습니다. (실제로 이것이 절대적인 것은 아닙니다. 하하, Microsoft에 대해 생각해보면 정말 흥미롭습니다. 여전히 인터페이스를 사용하여 다중 상속을 구현할 수 있지만 다단계 상속이 가능합니다. 예를 들어 맨 위에는 아버지와 할아버지가 있고 맨 아래에는 아들과 손자가 있을 수 있습니다.
직관적인 것을 살펴보겠습니다.
위의 그림을 보면 낮은 수준이 더 구체적이라는 것을 알 수 있습니다. 그러면 human이 모든 클래스의 기본 클래스(부모 클래스)이고, 다음이 파생 클래스(서브 클래스)임을 이해할 수 있습니다. 실제로 다음 하위 범주는 아래쪽으로 확장될 수 있습니다.
C#에서 파생 클래스는 직접 기본 클래스(메서드, 필드, 속성, 이벤트 및 인덱스 표시기)에서 멤버를 상속합니다. 파생 클래스는 생성자와 소멸자를 제외한 직접 기본 클래스의 모든 멤버를 암시적으로 상속합니다.
2. C#의 상속은 다음 규칙을 따릅니다.
(제가 요약한 것이 아니고, 인터넷에 접속해서 다른 분의 것을 복사한 것입니다. 하하!!)
1. 상속은 전이적입니다. C가 B에서 파생되고 B가 A에서 파생된 경우 C는 B에 선언된 멤버뿐만 아니라 A의 멤버도 상속합니다. Object 클래스는 모든 클래스의 기본 클래스 역할을 합니다.
2. 파생 클래스는 기본 클래스의 확장이어야 합니다. 파생 클래스는 새 멤버를 추가할 수 있지만 상속된 멤버의 정의를 제거할 수는 없습니다.
3. 생성자와 소멸자는 상속될 수 없습니다. 또한 다른 멤버는 정의된 액세스 방법에 관계없이 상속될 수 있습니다. 기본 클래스에서 멤버에 액세스하는 방식은 파생 클래스에서 해당 멤버에 액세스할 수 있는지 여부만 결정할 수 있습니다.
4. 파생 클래스가 상속된 멤버와 동일한 이름을 가진 새 멤버를 정의하는 경우 상속된 멤버를 덮어쓸 수 있습니다. 그러나 이것이 파생 클래스가 이러한 멤버를 삭제했다는 의미는 아니며 단지 해당 멤버에 더 이상 액세스할 수 없다는 의미입니다. (속성이나 메서드의 이름은 같지만 시그니처가 다른 경우 덮어쓰기가 아니라 오버로드라는 점에 유의해야 합니다.)
5. 클래스는 가상 메서드, 가상 속성 및 가상 인덱스 표시기와 파생을 정의할 수 있습니다
.클래스는 구현 클래스가 다형성을 나타낼 수 있도록 이러한 멤버를 오버로드할 수 있습니다.
6. 파생 클래스는 하나의 클래스에서만 상속할 수 있으며 인터페이스를 통해 다중 상속이 가능합니다.
하위 클래스에서는 base 키워드를 통해 기본 클래스의 멤버에 액세스할 수 있습니다. 즉,
다른 메서드에 의해 재정의된 기본 클래스의 메서드를 호출합니다.
파생 클래스의 인스턴스를 만들 때 호출해야 하는 기본 클래스 생성자를 지정합니다.
기본 클래스 액세스는 생성자, 인스턴스 메서드 또는 인스턴스 속성 접근자에서만 가능합니다.
정적 메서드에서 base 키워드를 사용하는 것은 오류입니다.
액세스 한정자 재검토
액세스 한정자는 선언된 멤버 또는 유형의 접근성을 지정하는 키워드입니다. 클래스 상속에는 공개 보호 내부 비공개라는 네 가지 액세스 한정자가 있습니다. 이러한 액세스 한정자를 사용하여 다음 5가지 접근성 수준을 지정합니다. 공개 보호 내부 내부 보호 비공개.
선언된 접근성 의미
공개 접근은 제한되지 않습니다.
보호된 액세스는 포함 클래스 또는 포함 클래스에서 파생된 형식으로 제한됩니다.
내부 액세스는 현재 프로젝트로 제한됩니다.
protected 내부 액세스는 포함 클래스에서 파생된 현재 항목이나 유형으로 제한됩니다.
개인 액세스는 포함 유형으로 제한됩니다.
아래의 예를 살펴보겠습니다. 사람이라는 주제를 중심으로
모든 코드에 대한 설명을 살펴보겠습니다.