반응형
class Person:
    def __init__(self, name, phone = None):
        self.name = name
        self.phone = phone
    def __repr__(self):
        return ' name = {} , tel = {}'.format(self.name,self.phone)

class Job:
    def __init__(self,position,salary):
        self.position = position
        self.salary = salary
    def __repr__(self):
        return 'position = {} salary = {}'.format(self.position,self.salary)

class Employee(Person,Job):
    def __init__(self,name,phone,position,salary):
        Person.__init__(self,name,phone)
        Job.__init__(self,position,salary)
    def raisesalary(self,rate):
        self.salary = self.salary * rate
    def __repr__(self):
        return Person.__repr__(self) + ' ' + Job.__repr__(self)
e = Employee('gslee',5244,'prof',300)
e.raisesalary(1.5)
print(e) # 출력 : name = gslee , tel = 5244 position = prof salary = 450.0

파이썬은 다중상속이 됩니다.

자바의 경우는 클래스 상속이 한 개만 가능했는데 여기선 이걸 가능하게 만들어버리네요

다중 상속법은 간단합니다. 

class Employee(Person,Job)

이와 같이 괄호 안에 상속받을 두개의 클래스를 적으면 됩니다.

 

하지만 여기서 super().__init__이나 __repr__은 사용하지 못합니다.

super에 해당하는게 Job과 Perosn으로 두개이기 때문이죠 겹치지만 않는다면 상관 없다고 생각합니다만

반응형

'파이썬 (추후 수정)' 카테고리의 다른 글

파이썬 메소드 만들기  (0) 2021.07.20
파이썬 추상클래스  (0) 2021.07.20
파이썬 상속  (0) 2021.07.20
파이썬 클래스  (0) 2021.07.20
파이썬 map, filter , lambda  (0) 2021.07.20