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. 추상클래스

: 너무 일반적이어서 인스턴스를 생성할 수 없는 클래스.

참조호출은 불가, 상속전용으로 만든 클래스

(cf. Base class - 상속, 참조호출(직접 호출) 가능)

특정 클래스를 재사용하는 것이 아니라, 함수의 이름과 원형을 통일하기 위해 계층구조를 만들어야 할 때 사용. 즉, 계층 구조상 통일감 있는 클래스를 만들때 사용. 따라서 꼭 필요한 것은 아니다. 구현부는 필요없고 함수의 이름만 공유해서 사용할 때.

 

-방법: 클래스 선언문에 abstract 지정자를 붙임.

 

2. 봉인 클래스

메서드를 봉신시켜 더이상 재정의 할 수 없도록 함. 호출은 가능하나 상속할 수 없도록 함.

sealed 지정자를 메서드 앞에 붙임. 항상 override 지정자와 함께 사용.

중간 단계에서, 중간 단계의 클래스가 자신이 마지막으로 재정의 하고 싶을 때.

 

봉인 할 필요가 있는 중간단계의 클래스 → 보안관련 메서드들.

 

3. 정적 클래스

외부에서 호출하지 못하며 같은 클래스 내의 다른 생성자에 의해서만 호출될 수 있는 클래스.

cf.객체를 생성할 수 없는 클래스 - 추상 클래스, 정적 클래스

private을 선언하여 객체 생성을 의도적으로 금지.

 

>그렇다면, 객체를 생성하지 않아도 되는 클래스는?

 

생성자가 private이면 무조건 정적 클래스, 생성자가 puclic이면 추상 클래스이거나 동적 클래스

추상클래스는 객체를 만들지 않는 것

정적클래스는 (private에 의해) 객체를 만들 수 없는 것 - 상속불가능

 

상속하지 않는 모든 클래스는 정적클래스로 만든다. 호출만 하면 되므로.

상속하지 않는 모든 클래스는 static으로 만듬

 

ex.최하위 클래스(더이상 상속할 일이 없음, 실제 개발자(프로그래머) 만드는 최하위 클래스)

 

>어차피 상속되지 않을(이용하지 않을) 클래스라고 하더라도 static을 붙여준다. 만일의 사태 대비. 자주 생략하는 습관은 좋지 않음.

'PROGRAMMING > C#.NET' 카테고리의 다른 글

chap.9 델리게이트  (0) 2011.02.21
chap.8 인터페이스  (0) 2011.02.11
chap.7 클래스 상속 2. 재정의  (0) 2011.02.11
chap.7 클래스 상속 1. 상속  (0) 2011.02.11
chap.6 함수형 멤버  (0) 2011.02.11
Posted by 마마필로 :