4. 클래스의 상속
페이지 정보
작성자 관리자 댓글 0건 조회 3,872회 작성일 20-07-17 19:12본문
상속(Inheritance)이란 "물려받다"라는 뜻으로, "재산을 상속받다"라고 할 때의 상속과 같은 의미이다.
클래스에도 이 개념을 적용할 수 있다.
어떤 클래스를 만들 때 다른 클래스의 기능을 물려받을 수 있게 만드는 것이다.
이번에는 상속 개념을 사용하여 우리가 만든 FourCal 클래스에 ab (a의 b제곱)을 구할 수 있는 기능을 추가해 보자.
앞에서 FourCal 클래스는 이미 만들어 놓았으므로 FourCal 클래스를 상속하는 MoreFourCal 클래스는 다음과 같이 간단하게 만들 수 있다.
>>> class MoreFourCal(FourCal):
... pass
...
>>>
클래스를 상속하기 위해서는 다음처럼 클래스 이름 뒤 괄호 안에 상속할 클래스 이름을 넣어주면 된다.
class 클래스 이름(상속할 클래스 이름)
MoreFourCal 클래스는 FourCal 클래스를 상속했으므로 FourCal 클래스의 모든 기능을 사용할 수 있어야 한다.
다음과 같이 확인해 보자.
>>> a = MoreFourCal(4, 2)
>>> a.add()
6
>>> a.mul()
8
>>> a.sub()
2
>>> a.div()
2
상속받은 FourCal 클래스의 기능을 모두 사용할 수 있음을 확인할 수 있다.
이제 원래 목적인 a의 b제곱(ab)을 계산하는 MoreFourCal 클래스를 만들어 보자.
>>> class MoreFourCal(FourCal):
... def pow(self):
... result = self.first ** self.second
... return result
...
>>>
pass 문장은 삭제하고 위와 같이 두 수의 거듭제곱을 구할 수 있는 pow 메서드를 추가해 주었다.
그리고 다음과 같이 pow 메서드를 수행해 보자.
>>> a = MoreFourCal(4, 2)
>>> a.pow()
16
MoreFourCal 클래스로 만든 a 객체에 값 4와 2를 설정한 후 pow 메서드를 호출하면 4의 2제곱 인 16을 돌려주는 것을 확인할 수 있다.
상속은 MoreFourCal 클래스처럼 기존 클래스(FourCal)는 그대로 놔둔 채 클래스의 기능을 확장시킬 때 주로 사용한다.
댓글목록
등록된 댓글이 없습니다.