상속이란?
> 파이썬에서는 어떤 클래스가 가지고 있는 기능을 그대로 물려받아 사용할 수 있는 클래스 생성 가능.
> 다른 클래스의 기능을 물려받을 때 "상속받는다"라는 표현 사용.
> 상속해주는 클래스는 부모클래스로, 슈퍼클래스, 기반클래스 등으로 불림.
> 상속받는 클래스는 자식클래스로, 서브클래스, 파생클래스 등으로 불림.
> 파이썬에서 "super"라는 키워드는 부모 클래스를 지정하는 용도로 사용.
상속 관계 구현
> 기본적으로 두 클래스가 상속 관계에 놓이려면 IS-A 관계가 성립.
( IS-A 관계란? : ' ~은(는) ~이다. '로 해석될 수 있는 관계 )
> 예시로 "학생은 사람이다"와 같은 관계는 IS-A 관계이며, Student가 자식 클래스, Person이 슈퍼 클래스가 된다.
> 슈퍼 클래스는 일반 클래스처럼 구현하면 되지만,
서브 클래스는 어떤 슈퍼 클래스를 상속받는지 명시할 수 있도록 새로운 문법을 사용한다.
> 상속의 기본 형식은 아래와 같다.
class 부모클래스 :
본문
class 자식클래스(슈퍼클래스) :
본문
def __init__(self, name, school):
super().__init__(name)
self.school = school
class Person:
''' 부모 클래스 '''
def __init__(self, name):
self.name = name
def eat(self, food):
print(f'{self.name}가 {food}를 먹습니다')
class Student(Person):
''' 자식 클래스 '''
def __init__(self, name, school):
super().__init__(name)
self.school = school
def study(self):
print(f'{self.name}는 {self.school}에서 공부합니다')
자식 클래스의 인스턴스 자료형
> 부모 클래스 객체는 부모 클래스의 인스턴스
> 그에 비해 자식 클래스 객체는 자식 클래스의 인스턴스이면서 동시에 부모 클래스의 인스턴스가 됨.
> 특정 객체가 어떤 클래스의 인스턴스인지 확인하기 위해 isinstance()함수를 사용.
isinstance(객체, 클래스)
> isinstance()함수는 객체가 클래스의 인스턴스인 경우 True를, 아니면 False를 반환.
'[Python] 파이썬' 카테고리의 다른 글
[Python] 예외처리 방식 (0) | 2022.09.11 |
---|---|
[Python] 오버라이딩 및 예외처리 종류 (0) | 2022.09.10 |
[Python] 파이썬 클래스 구성_2 (0) | 2022.09.08 |
[Python] 파이썬 클래스 구성 (0) | 2022.09.07 |
[Python] 파이썬 클래스와 객체 (0) | 2022.09.06 |