상속에 대한 추가 사항들

 

 

 

 

Ø C#에서는 C++와 달리 다중상속을 허용하지 않는다. , 하나의 하위 클래스가 동시에 여러 상위 클래스로 부터

       상속을 받는 case는 허용하지 않는다는 말이다.

l Error propagation problem
l Name conflict problem

 

Ø 생성자는 상속되지 않는다. 다만 슈퍼클래스의 기본 생성자가 묵시적으로 수행될 뿐이다.

 

 

 

 

 

 

 

상속되지 않는 것–같은 이름의 멤버

 

 

 

 

l 하위 클래스는 만약 자신의 멤버를 상위 클래스의 멤버와 같은 이름을 이용하여

    선언 하였다면, 같은 이름을 지닌 상위 클래스의 멤버는 상속 받지 않는다.

 

l 같은 이름의 멤버 변수의 경우
§ 하위 클래스의 멤버 변수가 상위 클래스의 멤버 변수를 숨기게 된다.

 

l 같은 이름의 멤버 메소드의 경우
§하위 클래스의 멤버 메소드는 상위 클래스의 멤버 메소드를 override한다.

 

 

 

 

 

 

 

상속되는 것 – public과 protected

 

 

 

 

Ø 하위 클래스는 상위 클래스에서 public으로 선언된 것과 protected로 선언된 것을 상속받는다.

    각각 publicprotected로 상속된다. (★당연히 private으로 선언된 것은 상속받을 수 없다.)

 

Ø Review
l private : 절대 상속될 수 없다.
l public : 어느 곳에서든지 상속될 수 있다. 접근도 허용한다.
l protected : 상속은 된다. 상속 받은 클래스에 대해서는 접근을 허용한다.

 

 

 

 

 

 

 

예제) 상위 / 하위 Class (설명)

 

 

 

 

Ø 클래스 Student는 클래스 People부터 필드와 메소드들을 상속받는다.

       (앞의 예제에서는 모든 필드, 메소드를 상속받는다.)

 

Ø 그리고 class Student에서 필드 studentNumber와 메소드 ShowSN()를 새로이 추가한 것이다.

 

Ø 따라서 Student형의 객체는 필드 name, age, studentNumber를 가지며, ShowNameAge()

       ShowSN()를 호출할 수 있다.

 

 

 

 

 

예제) 상위 / 하위 Class

 

 

 

 

class People

{

      public string

  name=“홍길동”;

  public int age=25;

  public void   ShowName(){}

}

 

 

 

class Student : People

//  : 기호가 상속 오퍼레이터

//  StudentPeople을 상속받음

{

  public int studentNumber;

  public void ShowSN(){}

}

 

 

상속과 관련된 용어 설명

 

 

 

 

 

 

 

 

 

상속(Inheritance)의 사용

 

 

 

 

Ø 상속이란, 부모 클래스(parent class)의 멤버변수와 멤버 메소드를 제한적으로 물려받는 것을 의미한다.

 

Ø 자손 클래스는 부모로 부터 상속받은 속성외에 자신만의 속성을 지닐 수 있다.

 

Ø 기존에 구축해 놓은 클래스들을 재사용 해서 그 클래스를 확장한다.

 

Ø 재사용을 하지 않는다면 기존 클래스에 정의된 것을 자식 클래스에서도 재작성해야 할 것이다.

 

 

 

 

 

 

상속(Inheritance)의 개념

 

 

 

 

 

 

 

 

+ Recent posts