반응형
상속이란??
상속이란 '물려받다' 라는 뜻이다.
a 클래스 가 있고 b가 이걸 상속 받았다 하면 아래의 그림 처럼 보여줄수 있겠다.
a 를 상속 받았으니 b가 더 많은걸 가질수가 있다.
상속 사용해보기.
아래의 예는 B가 상속받는 경우이다.
이름이나 이런건 같지만. 돈을 무려... 억을 상속받는ㅎㅎ(나도 돈좀...)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
class A():
''' 부모 '''
amt = 100000000
def __init__(self, parent, name):
self.parent = parent
self.name = name
def show(self):
print('저는 {} 이며 이름은 {} 입니다'.format(self.name, self.parent))
a = A('홍길동A', '부모')
print(a.show())
class B(A):
''' 자식 '''
def __init__(self, parent, name):
self.parent = parent
self.name = name
def show(self):
print('저는 {} 이며 이름은 {} 물려받은 재산은 {} 입니다'.format(self.name,self.parent, format(self.amt,',')) )
b = B('홍길동B','자식')
print(b.show())
|
메서드 오버라이딩(덮어쓰기)
메서드 오버라이딩 은
부모와 자식의 동일한 메서드가 있을시 자식메서드 에서 동일한 이름의 메서드를 재정의 하는것이 오버라이딩 이다.
아래는 a 의 show 와 b 의 show 가 같지만 b에서 재정의 하여 사용한 것이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
class A():
''' 부모 '''
amt = 100000000
def __init__(self, parent, name):
self.parent = parent
self.name = name
def show(self):
print('저는 {} 이며 이름은 {} 입니다'.format(self.name, self.parent))
class B(A):
''' 자식 '''
def __init__(self, parent, name):
self.parent = parent
self.name = name
def show(self):
print('저는 메서드 오버라이딩 이예요')
b = B('홍길동B','자식')
print(b.show())
|
반응형