상속 의 세 가지 유형인 재정 의(overriding) 와 다형성(polymorphism) 에 관해 우리가 일상적으로 가장 많이 사용하는 것은 상속입니다. 유사한 하위 클래스가 많이 필요할 때 하나씩 정의하면 공간과 시간이 많이 낭비됩니다. 우리는 부모 클래스를 정의하기만 하면 됩니다. 즉, 템플릿을 정의한 다음 부모 클래스의 모든 속성과 동작을 상속받으면 됩니다. 공장에서는 특정 클래스를 대량 생산하고 있습니다. 기계부품을 제작할 때 매 생산마다 도면을 그릴 필요는 없고 도면에 따라 대량생산을 하게 됩니다. 액세서리를 만들기 위해서는 rewriting 방식을 사용할 수 있고, 다형성은 상속과 rewriting을 결합하여 연구해 보자.
소위 상속이란 아들이 아버지를 상속받는 것을 의미합니다.
예제를 바탕으로 상속에 대해 알아봅시다.
classBase:#Base라는 상위 클래스 정의 def__init__(self,name,age,id):self.name=nameself.age=ageself.id=idprint('Base 클래스를 상속함')print('내 이름 :',self .name)print('내 나이:',self.age)print('내 학생 번호:' ,self.id)defgoto_school(self):print(self.name,'학교에 가기 위해 Base 클래스의 goto_school 메소드를 사용')classStudent(Base): #상위 클래스를 상속할 때 상위 클래스의 모든 메소드는 상속받음xiaoming= Student('Xiaoming',20,1001)xiaoming.goto_school()
출력은 다음과 같습니다
Base 클래스를 상속받았습니다. 내 이름: Xiao Ming. 내 나이: 20. 내 학생 번호: 1001. Xiao Ming은 학교에 가기 위해 Base 클래스에서 goto_school 방법을 사용하고 있습니다.
먼저 이 예제를 분석해 보겠습니다. 위에서 Base라는 클래스를 정의했습니다. 이 클래스는 이름, 이름, 학생 번호를 포함하는 생성자 메서드를 제공하고 goto_school() 메서드도 제공합니다. 아래는 위의 내용을 상속받은 것입니다. Base 클래스를 클릭한 다음, 출력 결과를 통해 Student 클래스에 아무것도 없더라도 일련의 작업이 Base에서 상속된다는 것을 알 수 있습니다. 그런 다음 마지막으로 한 줄에서 Base의 메서드도 호출했는데 여전히 성공적으로 호출할 수 있습니다.