본문 바로가기

학위공부/독학사 요점정리

[독학사/컴공/객체지향프로그래밍]8.상속

반응형

5.상속(inheritance)

 

5.1.클래스 상속

상속한 클래스가 다른 클래스에서 정의된 속성을 이어받아 그대로 사용하는 것

기존의 클래스를 부모 클래스이를 상속받아 새로 만들어지는 클래스를 하위 클래스라고 한다.

 

 

상속시 접근권한

-부모 클래스의 Private멤버는 접근할 수 없으며나머지 멤버의 접근권한은 부모 클래스의 접근권한과 상속 형태의 접근권한중 더 높은 접근권한을 따른다.

부모클래스 - protected멤버상속 형태 – public = protected

 

 

5.1.1.클래스 상속 선언 

class Person{ //부모클래스

 int age;

 char name[20];

...

};

class Student: public Person{ //하위클래스

char major[20];

..

};

->하위클래스 Student는 부모클래스의 변수와 메소드를 전부 포함하고 있다.

 

 

5.1.2.생성자와 소멸자 호출 순서

-하위클래스의 객체가 생성될 때 먼저 부모클래스의 생성자가 호출된 후 하위 클래스의 생성자가 호출된다.

-소멸자의 경우는 생성자와 반대인 하위 클래스의 소멸자가 실행된 후 부모 클래스의 소멸자가 실행된다.

하위 클래스에 생성자 인수를 전달하는 예

파생클래스_생성자(인수리스트): 베이스클래스_생성자(인수리스트){ ... };

 

 

5.1.3.멤버함수 재 정의(override)

. 상속으로 물려받은 자료나 메서드를 그대로 사용하지 않고 자신이 새로 만들어 사용하는 것

-함수명은 같아야 한다.

-파라미터의 타입과 개수는 동일해야 한다.

-리턴타입은 같아야한다.

 

:

class Student{

 

  void show(){

    System.out.println("학생");

  }

}

 

class ScienceStudent extends student{

 

  void show(){

    System.out.println("과학동아리학생");

  }

}

 

[출처] [독학사/컴공/객체지향프로그래밍]1.객체지향의 기본적 개념|작성자 한국인노동자

-오버라이딩은 메서드 은닉의 효과를 가진다.

-위 예제에서 Stu(Student) 클래스는 SStu(ScienceStudent)클래스에 의해서 오버라이딩 되었다. Stu클래스의 show 함수는 SStu클래스의show함수에 의해 은닉되게 된다.

 

 

5.1.4.추상(abstract) 메소드와 추상 클래스 

http://zion437.tistory.com/55

반응형