티스토리 뷰

Python

[파이썬] 상속, 다중 상속

J3SUNG 2020. 9. 15. 03:23

상속 - 부모 클래스의 변수와 메소드를 자식 클래스에서도 사용이 가능합니다.

class People:
    def __init__(self, name, age, weight):
        self.name = name
        self.age = age
        self.weight = weight
        print("{0}이 입장하였습니다.".format(self.name))
        print("나이는 {0}, 몸무게는 {1} 입니다.".format(self.age, self.weight))

class detailPeople(People):
    def __init__(self, name, age, weight, height):
        People.__init__(self, name, age, weight)
        self.height = height

guest_3 = detailPeople("June", 20, 70, 170)
print("이름 : {0}, 나이 : {1}, 몸무게 : {2}, 키 : {3}".format(guest_3.name, guest_3.age, guest_3.weight, guest_3.height))

출력결과
June이 입장하였습니다.
나이는 20, 몸무게는 70 입니다.
이름 : June, 나이 : 20, 몸무게 : 70, 키 : 170

클래스를 선언하는 부분에서 클래스 이름을 적고 괄호에 상속할 클래스명을 적으면 됩니다.
생성자 부분에서 상속받는 클래스의 생성자도 입력해주어야 합니다.

 

다중상속 - 여러 부모에게 상속을 받은 경우를 의미하며, 두 부모가 가진 변수와 메소드 모두 사용이 가능합니다.

class People:
    def __init__(self, name, age, weight):
        self.name = name
        self.age = age
        self.weight = weight
        print("{0}이 입장하였습니다.".format(self.name))
        print("나이는 {0}, 몸무게는 {1} 입니다.".format(self.age, self.weight))

class Car:
    def __init__(self, speed):
        self.speed = speed

    def drive(self, name):
        print("{0}이 {1}속도로 주행중입니다.".format(name, self.speed))

class detailPeople(People, Car):
    def __init__(self, name, age, weight, height, speed):
        People.__init__(self, name, age, weight)
        Car.__init__(self, speed)
        self.height = height

guest_3 = detailPeople("June", 20, 70, 170, "100km/h")
print("이름 : {0}, 나이 : {1}, 몸무게 : {2})".format(guest_3.name, guest_3.age, guest_3.weight))
print("키 : {0}, 속도 : {1}".format(guest_3.height, guest_3.speed))
guest_3.drive(guest_3.name)

출력결과
June이 입장하였습니다.
나이는 20, 몸무게는 70 입니다.
이름 : June, 나이 : 20, 몸무게 : 70)
키 : 170, 속도 : 100km/h
June이 100km/h속도로 주행중입니다.

다중상속을 위해 2개의 클래스를 더 생성하였습니다.
상속을 할 클래스를 선언하고 괄호에 상속할 클래스들을 입력해줍니다.
생성자 부분에 해당 상속한 클래스들의 생성자도 만들어줍니다.

해당 클래스는 상속한 클래스의 변수, 메소드를 사용할 수 있습니다.

728x90

'Python' 카테고리의 다른 글

[파이썬] pass, super  (0) 2020.09.15
[파이썬] 메소드 오버라이딩  (0) 2020.09.15
[파이썬] 클래스  (0) 2020.09.15
[파이썬] with  (0) 2020.09.15
[파이썬] pickle  (0) 2020.09.13
댓글
댓글쓰기 폼
공지사항