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) 메소드와 추상 클래스
'학위공부 > 독학사 요점정리' 카테고리의 다른 글
[독학사/컴공/객체지향프로그래밍]10.기본함수와 예외처리 (0) | 2020.06.30 |
---|---|
[독학사/컴공/객체지향프로그래밍]9.인터페이스 상속과 다형성 (0) | 2020.06.30 |
[독학사/컴공/객체지향프로그래밍]7.객체 (0) | 2020.06.29 |
[독학사/컴공/객체지향프로그래밍]6.클래스와 객체 (0) | 2020.06.29 |
[독학사/컴공/객체지향프로그래밍]5.연산자, 수식, 문장 (0) | 2020.06.29 |