root layout

패스트캠퍼스

  1. 강의 질문
  2. 데이터 사이언스

상속 관련 질문의 건

2025.04.04 16:06 수정

class jelly:

def __init__(self, color, taste):

self.color=color

self.taste=taste

def print_info(self):

print('부모 클래스입니다')

print('젤리')


class tj(jelly):

def print_info2(self):

print('자식 클래스입니다')

print('곰돌이아가')

print('taste:', self.taste)

print('color:', self.color)


로 자식 클래스의 프린트인포라는 매소드 이름이 다르게 하고, 위에 jelly 부모클래스 불러오게 되면

.super()와 동일하게 '부모클래스의 매소드등 속성 모두'와 '자식클래스 속성 중 부모클래스 속성과 겹치지 않는(이 경우 print_info2) 것'이 최종 출력되나요?


그런데 제가 임의로 바꾸어서 해보니..

# 자식 클래스로 객체 생성

# 자식 클래스의 print_info() 함수

# 자식 클래스에서 생성된 메소드로 부모 클래스의 메소드 무시


yj=tj('yellow','lemon')

yj.print_info2()


인 경우


자식 클래스입니다

곰돌이아가

taste: lemon

color: yellow


로 출력됩니다.


부모 클래스입니다

젤리

자식 클래스입니다

곰돌이아가

taste: lemon

color: yellow

가 아닌 이유가 무엇일까요?


*상속의 경우모든 매소드 속성이 상속되는 것이 아니라 생성자 처럼 제일 처음 매소드 속성만 자식 클래스에게 상속되는 걸까요

** 슈퍼 키워드 사용하지 않고 그냥 부모, 자식 클래스에서 매소드 이름들을 다르게 하면 되지 않나요..? 굳이 슈퍼 키워드를 사용하는 이유가 무엇일까요


답변 

연관 질문

커뮤니티 질문보기