python
python - 상속
cg0826
2020. 5. 10. 22:12
반응형
클래스에서 상속이란 ?
- 부모 클래스의 내용을 받는 자식클래스가 받아서 사용하게 되는 것입니다.
- 형태는 다음과 같습니다.
class 부모클래스:
소스코드
class 자식클래스(부모클래스):
소스코드
class Animal: # 부모클래스
def __init__(self):
print('animal 생성자')
def move(self):
print('움직이는 동물')
class Dog(Animal): # 자식클래스
def __init__(self): # 해당 클래스의 생성자가 없으면 부모 생성자를 부르고 생성자가 있으면 자신을 호출한다.
print('Dog 생성자')
def my(self):
print('나는 개')
dog1 = Dog()
dog1.my()
dog1.move()
출력 결과
Dog 생성자
나는 개
움직이는 동물
부모클래스 Aninal의 '움직이는 동물'을 자식클래스 Dog가 가져다가 사용하여 위와 같은 출력 결과를 가지고 온 것을 알 수 있습니다.
여기서 부모클래스의 생성자를 가지고 오지 않는 이유는 주석에도 알 수 있듯이, 자식클래스에서 생성자가 있기 때문입니다.
오버라이딩
- 부모 클래스의 메소드를 자식 클래스에서 재정의 하는 것입니다.
다형성
- 부모 클래스로부터 물려받은 내용을 자식 클래스 내에서 오버라이딩하여 사용하는 것입니다.
class Parent: # overriding
def Prindata(self):
pass
class Child1(Parent):
def Prindata(self):
print('Child1에서 overrding')
class Child2(Parent):
def Prindata(self):
print('Child2에서 재정의')
def abc(self):
print('Child2 고유 메소드')
c1 = Child1()
c1.Prindata()
c2 = Child2()
c2.Prindata()
출력 결과
Child1에서 overrding
Child2에서 재정의
부모클래스인 Child1 에서 Printdata 메소드는 'child1에서 overrding'을 출력해준다.
하지만 오버라이딩 성질을 이용하면 Child2에서 Printdata 메소드의 출력문인 'Child2에서 재정의' 를 출력해줍니다.
2020/05/10 - [python] - python - 상속 (2)
python - 상속 (2)
이전 포스팅 글에 의어서 상속 예제를 들어보겠습니다. class Person: say = '안녕하세요 제 나이는 ' nai = 20 def __init__(self, nai): print('Persion 생성자') self.nai = nai def PrintInfo(self): print('..
lightchan.tistory.com
반응형