728x90
상속 - 부모 클래스의 변수와 메소드를 자식 클래스에서도 사용이 가능합니다
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개의 클래스를 더 생성하였습니다.
상속을 할 클래스를 선언하고 괄호에 상속할 클래스들을 입력해줍니다.
생성자 부분에 해당 상속한 클래스들의 생성자도 만들어줍니다.
해당 클래스는 상속한 클래스의 변수, 메소드를 사용할 수 있습니다.
'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 |