Language/기초문법

[Python] 클래스 상속

Sh-YE 2024. 5. 17. 14:17

클래스 상속

부모클래스의 특성과 메서드를 새로운클래스(자식클래스) 에 물려주는 개념.

 

ex1. 덧셈, 뺄셈 기능이 있는 클래스를 만들고 ,이를 상속하는 클래스를 만들어서 곱셈과 나눗셈의 기능을 추가

# 부모클래스
class CalculatorSuper:

    def add(self, n1, n2):
        return n1 + n2

    def sub(self, n1, n2):
        return n1 - n2

# 자식클래스 (CalculatorSuper를 상속받음)
class CalculatorChild(CalculatorSuper):

    def mul(self, n1, n2):
        return n1 * n2

    def div(self, n1, n2):
        return n1 / n2

# 객체생성
myCalculator = CalculatorChild()

#매서드사용
print(myCalculator.mul(1,2))
print(myCalculator.div(1,2))
print(myCalculator.add(1,2))
print(myCalculator.sub(1,2))



>>>>
2
0.5
3
-1

 

다중상속

- 2개 이상의 클래스를 상속

 

ex2. BasicCalculator와 DeveloperCalculator 클래스를 다음과 같이 만들고 이들 클래스를 상속하여 Calculator 클래스를 만들고 사용해보자 

class BasicCalculator:
    def add(self, n1, n2):
        return n1 + n2

    def sub(self, n1, n2):
        return n1 - n2
    def mul(self, n1, n2):
        return n1 * n2
    def div(self, n1, n2):
        return n1 / n2

class DevoeloperCalculator:
    def mod(self, n1, n2):
        return n1 % n2

    def flo(self, n1, n2):
        return n1 // n2
    def exp(self, n1, n2):
        return n1 ** n2

class MyCalculator(BasicCalculator,DevoeloperCalculator):
    def __int__(self):
        pass

cal = MyCalculator()

print(f'cal.add(10,20) : {cal.add(10,20)}')
print(f'cal.sub(10,20) : {cal.sub(10,20)}')
print(f'cal.mul(10,20) : {cal.mul(10,20)}')
print(f'cal.div(10,20) : {cal.div(10,20)}')

print(f'cal.mod(10,20) : {cal.mod(10,20)}')
print(f'cal.flo(10,20) : {cal.flo(10,20)}')
print(f'cal.exp(10,20) : {cal.exp(10,20)}')