수색…


기본 메소드 재정의

다음은 Python에서 기본 재정의의 예입니다 (Python 2와 Python 3와의 명확성 및 호환성을 위해 새로운 스타일 클래스를 사용 하고 print with () ).

class Parent(object):
    def introduce(self):
        print("Hello!")

    def print_name(self):
        print("Parent")
    
    
class Child(Parent):
    def print_name(self):
        print("Child")
    
    
p = Parent()
c = Child()

p.introduce()
p.print_name()

c.introduce()
c.print_name()

$ python basic_override.py 
Hello!
Parent
Hello!
Child

Child 클래스가 생성되면 Parent 클래스의 메서드를 상속합니다. 즉, 부모 클래스에있는 모든 메서드에 자식 클래스도 있습니다. 예에서 introduce 에 대해 정의 된 Child 이 정의되어 있기 때문에 클래스 Parent 의 클래스 정의에 명시 적으로 정의되지에도 불구하고, Child .

이 예제에서는 Child 가 자체 print_name 메서드를 정의 할 때 재정의가 발생합니다. 이 메소드가 선언되어 있지 않은 경우, c.print_name()"Parent" 인쇄합니다. 그러나 Child 오버라이드 (override) 한 Parent 의의 정의 print_name 호출에 그래서 지금, 그리고 c.print_name() , 단어 "Child" 인쇄되어 있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow