728x90
반응형
상속 : 부모 클래스의 모든 멤버(함수 혹은 변수)를 자식 클래스에게 물려줄 수 있는 것
- 자식 클래스는 물려받은 멤버 이외에 추가 기능 구현!
다형성(override) : 상속 받은 메소드의 내용을 재정의하기
- 부모 클래스와 같은 메소드지만 자식 클래스에서 내용을 변경하는 것
class Person:
def __init__(self, name, phoneNumber):
self.name = name
self.phoneNumber = phoneNumber
def printInfo(self):
print("Name : {0}, Phone Number : {1}".format(self.name, self.phoneNumber)
class Student(Person): # Person : 부모 클래스, Student : 자식 클래스
def __init(slef, name, phoneNumber, subject, studentID):
Person.__init__(self, name, phoneNumber) # 부모 클래스의 생성자를 호출하여 멤버변수 초기화
self.subject = subject
slef.studentID = studentID
def printInfo(self): # 부모 클래스의 메소드지만, 자식 클래스에서 재정의(override)함
print("Name : {0}, Phone Number : {1}".format(self.name, self.phoneNumber)
print("Subject : {0}, Student ID : {1}".format(self.subject, self.studentID)
if __name__ == "__main__":
histoPerson = Person("이순신", "010-1111-2222")
manStudent = Student("공돌이", "010-1111-2222", "공학과", "1234567")
print(histoPerson.__dict__)
print(manStudent.__dict__)
# __dict__호출되면 dictionary로 호출되어, key와 value를 묶어서 확인 가능(예약어임)
histoPerson.printInfo() # name과 phoneNumber까지 출력됨
manStudent.printInfo() # name과 phoneNumber에 추가로 subject와 studentID도 같이 출력됨
728x90
'Python > 구조 공부하기' 카테고리의 다른 글
[Python] 7. 파이썬의 모듈 및 사용자 정의 모듈 (2) | 2021.10.26 |
---|---|
[Python] 6. 다중 상속 및 이름 충돌 (2) | 2021.10.26 |
[Python] 4. private 멤버 (0) | 2021.10.26 |
[Python] 3. 정적 메소드 (0) | 2021.10.13 |
[Python] 2. 생성자 메소드와 소멸자 메소드 (0) | 2021.10.06 |