Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- level 1
- 카카오
- 빅분기
- seaborn
- 알고리즘
- R
- 튜닝
- oracle
- Python
- 프로그래머스
- Numpy
- Kaggle
- 실기
- 실습
- SQL
- sklearn
- 머신러닝
- 코딩테스트
- 데이터 분석
- 빅데이터 분석 기사
- python3
- matplotlib
- level 2
- 오라클
- 파이썬
- pandas
- Oracel
Archives
- Today
- Total
라일락 꽃이 피는 날
[Python] Class Inheritance (상속) 본문
728x90
Class Inheritance (상속)
- 기존에 정의해둔 클래스의 기능을 그대로 물려받을 수 있다.
- 기존 클래스에 기능을 추가하거나 변경하여 새로운 클래스를 정의한다.
- 상속 받고자 하는 대상인 기존 클래스는 Parent, Super, Base class 라고 부른다.
- 상속 받는 새로운 클래스는 Child, Sub, Derived class 라고 부른다.
- 의미적으로 is-a 관계를 갖는다.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self, food):
print('{}은 {}를 먹습니다'.format(self.name, food))
def sleep(self, minute):
print('{}은 {}분동안 잡니다'.format(self.name, minute))
def work(self, minute):
print('{}은 {}분동안 일합니다'.format(self.name, minute))
class Employee(Person):
def __init__(self, name, age):
self.name = name
self.age = age
bob = Employee('Bob', 25)
bob.eat('BBQ') # Bob은 BBQ를 먹습니다
bob.sleep(30) # Bob은 30분동안 잡니다
bob.work(60) # Bob은 60분동안 일합니다
method override
- 부모 클래스의 method를 재정의(override)한다.
- 하위 클래스(자식 클래스)의 인스턴스로 호출시, 재정의된 메소드가 호출된다.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self, food):
print('{}은 {}를 먹습니다'.format(self.name, food))
def sleep(self, minute):
print('{}은 {}분동안 잡니다'.format(self.name, minute))
def work(self, minute):
print('{}은 {}분동안 일합니다'.format(self.name, minute))
class Student(Person):
def __init__(self, name, age):
self.name = name
self.age = age
def work(self, minute):
print('{}은 {}분동안 공부합니다'.format(self.name, minute))
class Employee(Person):
def __init__(self, name, age):
self.name = name
self.age = age
def work(self, minute):
print('{}은 {}분동안 업무를 합니다'.format(self.name, minute))
bob = Student('Bob', 25)
bob.eat('BBQ') # Bob은 BBQ를 먹습니다
bob.sleep(30) # Bob은 30분동안 잡니다
bob.work(60) # Bob은 60분동안 공부합니다
aaron = Employee('Aaron', 25)
aaron.eat('BBQ') # Aaron은 BBQ를 먹습니다
aaron.sleep(30) # Aaron은 30분동안 잡니다
aaron.work(60) # Aaron은 60분동안 업무를 합니다
super
하위클래스(자식 클래스)에서 부모 클래스의 method를 호출할 때 사용한다.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def work(self, minute):
print('{}은 {}분동안 준비를 합니다'.format(self.name, minute))
class Student(Person):
def __init__(self, name, age):
self.name = name
self.age = age
def work(self, minute):
super().work(minute)
print('{}은 {}분동안 공부합니다'.format(self.name, minute))
class Employee(Person):
def __init__(self, name, age):
self.name = name
self.age = age
def work(self, minute):
super().work(minute)
print('{}은 {}분동안 업무를 합니다'.format(self.name, minute))
bob = Student('Bob', 25)
bob.work(60) # Bob은 60분동안 준비를 합니다
# Bob은 60분동안 공부합니다
aaron = Employee('Aaron', 25)
aaron.work(60) # Aaron은 60분동안 준비를 합니다
# Aaron은 60분동안 업무를 합니다
728x90
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 정규 표현식 (regular expression) 2 (0) | 2021.08.16 |
---|---|
[Python] 정규 표현식 (regular expression) 1 (0) | 2021.08.16 |
[Python] Class (클래스) (0) | 2021.08.16 |
[Python] Package, Module (0) | 2021.06.15 |
[Python] fileopen (0) | 2021.06.15 |