JAMONGPROJECT

[DAY14] 상속과 예외처리 본문

Challenge/FASTCAMPUS 30일 챌린지

[DAY14] 상속과 예외처리

JAMONGPROJECT 2023. 3. 5. 17:01


클래스의 계층구조

 

상속이란?

 

클래스의 상속이란 한 클래스가 다른 클래스로부터 데이터 속성과 메서드를 물려받는 것.

상속하는 클래스를 기반(base) 클래스 또는 상위(super) 클래스라고 하고

상속 받는 클래스를 파생(derived) 또는 하위(sub) 클래스라고 한다.

 

파이썬에서 상속 하는법

class A:
  def 함수1(self, 변수1, 변수2, ...):
    return 결과

class B(A):
  def 함수2(self, 변수1, 변수2, ...):
    return 결과

=> B는 아래와 같음

class B:
  def 함수1(self, 변수1, 변수2, ...):
    return 결과
  def 함수2(self, 변수1, 변수2, ...):
    return 결과

 

class add_calculator :

  def addition (self, x , y):

    return x+y

 

class good_calculator (add_calculator):

  def substraction (self, x , y):

    return x - y

 

부모의 기능을 불러오려면?

 

super() 이용하면 부모에게 정의된 함수를 불러올 수 있다.

 

class add_calculator:

  def addition(self, x, y):

    print(x+y)

 

class good_calculator(add_calculator):

  def addition2(self, x, y):

    super().addition(x,y)   # 부모의 addition 메소드를 불러와서 print(x+y)가 될 것이다.

    print('또?')

    super().addition(x,y)

 

overriding

 

만약에, 부모의 메소드와 이름이 똑같은 메소드를 자식에게 정의하면?

 

class A:

  def method(self, 변수):

    결과

class B(A):

  def method(self, 변수):

    다른 결과

 

=> A의 메소드는 무시되고 B는 새롭게 정의된 메소드를 사용!

 

다중 상속

 

위와 같이 다중상속도 가능하다

class A:

  def 함수(self):

    결과

class B:

  def 함수(self):

    결과

class C(A,B):

  pass

 

위와같은 상황에서 C는 A, B중에 어떤 함수를 상속받을까?

=> 먼저 입력한 A의 함수를 상속받는다.

 


 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

http://bit.ly/3Y34pE0

 

#패스트캠퍼스 #패캠챌린지 #수강료0원챌린지 #환급챌린지 #직장인인강 #직장인자기계발
#패캠인강후기 #패스트캠퍼스후기 #오공완

#한번에끝내는컴퓨터공학전공필수&인공지능심화초격차패키지Online

'Challenge > FASTCAMPUS 30일 챌린지' 카테고리의 다른 글

[DAY16] 상속과 예외처리  (0) 2023.03.07
[DAY15] 상속과 예외처리  (0) 2023.03.06
[DAY13] 클래스  (0) 2023.03.04
[DAY12] 클래스  (0) 2023.03.03
[DAY11] 클래스  (0) 2023.03.02
Comments