본문으로 바로가기

파이썬 클래스 상속

category 카테고리 없음 2020. 6. 3. 13:29
반응형

상속이란??

상속이란 '물려받다' 라는 뜻이다.

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''부모')
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','자식')
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','자식')
print(b.show())
 

 

 

반응형