다음 클래스 다이어그램을 파이썬 코드로 표현한 것이다. (가) ~ (라… | [7급 국가직 소프트웨어공학] 22년 1회차 기출문제 상세 페이지
1[7급 국가직 소프트웨어공학] 22년 1회차
다음 클래스 다이어그램을 파이썬 코드로 표현한 것이다. (가) ~ (라)에 들어갈 내용으로 옳은 것은?class (가):(가) (나) (다) (라)
def __init__(self, name, price):
self.name = name
self.price = price
def (나)(self):
print("{}'s price = {}".format(self.name,
self.price))
class (다)((가)):
def __init__(self, name, price):
Food.__init__(self, name, price)
def (라)(self):
print("{}".format(self.name))
1
Food / show / Korean / showname
2
Korean / showname / Food / show
3
Food / showname / Korean / show
4
Korean / show / Food / showname
해설
클래스 다이어그램에서 Food 가 부모 클래스, Korean 이 Food 를 상속한 자식 클래스이므로 (가) Food, (나) show, (다) Korean, (라) showname 이 들어간다.
Food 는 name·price 속성과 show() 연산을 가지며, 코드에서 이름과 가격을 함께 출력하는 메서드가 show 이다. Korean 은 속이 빈 삼각형 화살표(일반화)로 Food 를 가리키므로 파이썬에서는 class Korean(Food) 로 표현하고, 생성자에서 Food.__init__ 을 호출한다. Korean 에만 있는 showname() 이 이름만 출력하는 메서드이다.
- Korean·showname·Food·show 구성: 상속 방향이 거꾸로이고 두 메서드의 위치도 뒤바뀌어, 자식 생성자의 Food.__init__ 호출과 맞지 않는다.
- Food·showname·Korean·show 구성: 부모에 showname, 자식에 show 를 두는 것이라 다이어그램의 연산 배치와 반대이다.
- Korean·show·Food·showname 구성: 메서드 이름은 맞지만 Korean 이 부모가 되어 상속 방향이 반대이다.
오류나 개정된 내용이 보이면 알려주세요
