chap.7 클래스 상속
1. 상속
1.1 상속
1.2 포함
1.3 상속의 원칙
1.4 안전한 형변환
2. 재정의
2.1 멤버 숨기기
2.2 메서드 재정의
2.3 다형성
3. 추상 클래스
3.1 추상 클래스
3.2 봉인 클래스
3.3 정적 클래스
상속(Inheritance)
: 이미 만들어진 클래스(기반 클래스, Base Class)의 멤버들을 물려받아 새로운 클래스(파생 클래스, Derived Class)를 정의하는 기법.
cf.) 파생 클래스 = 슈퍼 클래스(Super Class), 서브 클래스(Sub Class) / 부모 클래스 - 자식 클래스
수정: 추가적으로 코드를 더 삽입하는것
변수: 원래 있던 값에서 다른 값으로 바꾸는 것
2. 특징
-부모 클래스는 수정할 수 없다.
따라서, 부모가 가진 필드나 함수는 최대한 단순하게, 꼭 필요한 것만 가지고 있어야 함. 자식클래스에서 필요한 부분을 추가(수정)할 수 있도록.
대부분의 파생클래스에 물려 줄 수 있는 함수의 기능은? 즉,
어떤 기능을 하는 함수를 부모클래스에 만들면 상속받는 자식클래스에서 자주 불러 사용할 수 있을 것인가?
→ 공동 데이터 타입을 정의하고 있는 함수(필드, 프로퍼티, 인텍스 또는 구조체 형태일 수도 있음)
그렇다면, 데이터 타입을 정의하고 있는 부모 클래스를 만들면서 그 안에 함수는 어떤것을 사용할 것인가
→ 필드를 정의하는 함수(ex.inform)
자식 클래스에서 받아서 쓸만한 가치가 있는것을 부모클래스에 만들어야 함. 대표적인것이, 데이타타입 선언.
3. 형식
지정자 class 이름 : 기반클래스, 인터페이스
{
// 멤버 목록
}
4. 상속의 사용
-부모 클래스는 코드가 안보이도록 dll파일로 컴파일 되어 있음. 부모 클래스의 코드를 분석하여 이해할 필요는 없음. 만들어진 클래스의 메뉴얼을 보고 이용하면 됨 → 시간단축.
-두 개 이상의 부모 클래스를 상속 받으려면 계층구조(a → b → c, c가 a와 b를 상속 받음)로 상속(동시 상속 안됨) 또는 두 개 이상의 부모 클래스를 합침.
외부 클래스를 사용할 수 있는 세 가지 방법 - 상속, 참조, 내부클래스에서 사용? 중 가장 효율적인 방법이 상속이다.
chap.7 클래스 상속
1. 상속
1.1 상속
1.2 포함
1.3 상속의 원칙
1.4 안전한 형변환
2. 재정의
2.1 멤버 숨기기
2.2 메서드 재정의
2.3 다형성
3. 추상 클래스
3.1 추상 클래스
3.2 봉인 클래스
3.3 정적 클래스
1. 구조체는 상속의 대상이 아님. 이로 인해 구조체의 사용률이 떨어짐.
2. 모든 클래스는 하나의 기반 클래스만 가짐. (cf.다중 상속을 지원하는 언어 - smalltalk)
단, 인터페이스는 구현 상속이 아닌 메서드의 목록(=프로토타입, 함수원형)만 제공하므로 다중 상속 가능
3. 한 클래스로부터 파생되는 클래스의 갯수 제한 없음.
'PROGRAMMING > C#.NET' 카테고리의 다른 글
chap.7 클래스 상속 3. 추상 클래스 (0) | 2011.02.11 |
---|---|
chap.7 클래스 상속 2. 재정의 (0) | 2011.02.11 |
chap.6 함수형 멤버 (0) | 2011.02.11 |
chap.2 C#언어 3. 네임스페이스 (0) | 2011.02.10 |
chap.2 C#언어 1. C#언어 ~ 2. 닷넷 프로젝트 (0) | 2011.02.10 |