상속(Inheritance) : 클래스들간의 관계

 

클래스 상속

  • 개체 지향 프로그래밍의 장점 중의 하나는 이미 만들어져 클래스를 재사용 하는 것이다. 재사용에 대한 핵심개념이 바로 상속이다.
  • 부모의 재산을 자식에게 상속하듯이 부모클래스(기본클래스) 모든 멤버를 자식클래스(파생클래스)에게 재사용토록 허가하는 기능을 의미한다.
  • 여러 클래스들 간의 관계를 설정함에 있어서 수평 관계가 아닌 부모와 자식간의 관계처럼 계층적인 관계를 표현하고자 사용하는 개념을 상속이라 한다.

 

Object 클래스 : 교재347~348페이지

  • 모든 클래스들의 부모 클래스
  • 닷넷에서 가장 높은 층에 속하는 시조격 클래스
  • 새롭게 만들어지는 모든 클래스들은 Object 클래스로부터 상속 받음(생략 가능)

 

기본(Base) 클래스

  • 다른 클래스의 부모 클래스가 되는 클래스
  • Base 클래스 또는 부모(Parent) 클래스로 표현

 

파생(Derived) 클래스 : Sub

  • 다른 클래스로부터 멤버를 물려받은 클래스
  • Derieved 클래스 또는 자식(Child) 클래스로 표현

 

접근 한정자 :  Access Modifier

public : 공용, 외부에 공개

private : 전용, 내부에서만 사용

protected : 제한적인, 자식에게만 공개

internal : 어셈블리(DLL) 파일 내에서만 공개

 

(다시) 정의 : 오버라이드(Override) : 부모와 자식간의 멤버명이 충돌???

  • 부모와 자식이 동일 : 인스턴스 생성시 사용한 클래스의 멤버
  • 부모에는 아무것도 안붙이고, 자식에는 new키워드를 붙여서 하위(자식클래스)에서 새롭게 정의한다.
  • 부모 virtual, 자식에는 override : 제일 좋은 형태
  • 부모 abstract, 자식에는 override

 

ToString() 메서드 오버라이드

  • Object 클래스에 정의되어 있는 ToString() 메서드는 기본적으로 클래스의 이름값을 반환시켜준다.
  • 또는 정수형과 같이 대표가 되는 값이 들어있는 경우는 값을 문자열로 변환해서 출력해준다.
  • 내가 만든 클래스의 대표가 되는 속성 또는 값을 외부에 인스턴스명으로 사용해서 출력하고자 때에는  ToString() 메서드를 재정의(Override)해서 사용해야 한다.

 

추상 클래스(Abstract)

  • 클래스 설계시 부모 클래스 역할을 하면서, 강제로 자식 클래스에게 특정 멤버명을 물려주고자 정의
  • 추상클래스는 멤버의 실제 내용을 구현하지 않고, 자식 클래스에서 멤버를 구현
  • 주로 선임이 추상클래스, 후임이 추상클래스를 상속받은 클래스 구현

 

인터페이스(Interface)

  • 추상 클래스와 같이 다른 클래스에게 멤버명을 미리 강제로 사용토록
  • 인터페이스는 몀버명만 갖는반면, 추상클래스는 다름 멤버도 가질 있다.
  • 인터페이스는 자동차로 따지면, 전세계표준(ISO), 국내표준㉿ 등의 의미를 지닌다.
  • C# 다중상속이 불가능하지만(C++가능), 인터페이스 다중 상속은 가능하다.
  • 자동차 규격, 예를들어 배터리 충전(점프선)

 

봉인클래스(Sealed) : 최종 클래스, 마지막 클래스

  • 이상 상속되지 않는 클래스
  • Sealed 키워드를 붙여서 상속금지시킨다.

'.NET프로그래밍 > C# 3.5 SP1' 카테고리의 다른 글

65. 명령줄인수  (0) 2009.08.17
C# 프로그래밍 관련 단어정리  (0) 2009.08.14
64. 봉인클래스(Sealed)  (0) 2009.08.14
63. 인터페이스(Interface)  (0) 2009.08.14
62. 추상클래스(Abstract)  (0) 2009.08.14
Posted by holland14
: