Երաժշտական գործիքներ

Դուք հավելված եք մշակում երաժշտական նվագախմբի գործիքների գույքագրումը կառավարելու համար: Դուք պետք է մոդելավորեք տարբեր տեսակի երաժշտական գործիքներ և որոշակի գործողություններ:
Ձեզանից պահանջվում է ստեղծել MusicInstrument class, որն ունի երկու ատրիբուտ՝ name և type: Այս class-ը պետք է ունենա նաև play() մեթոդ, որը տպում է "Playing the instrument"։
Որպես հաջորդ քայլ՝ ստեղծեք Guitar class-, որը ժառանգում է MusicInstrument class-ից (կիթառի տիպը պետք է լինի՝ type - String): Այս class-ը պետք է ունենա tune() մեթոդ, որը տպում է "Tuning the guitar": Guitar class-ի play() մեթոդը նախ պետք է կանչի tune() մեթոդը, այնուհետև ծնող class-ից կանչի play()՝ օգտագործելով super():
Ստեղծեք Violin class-ն այնպես, ինչպես ստեղծեցիք Guitar class-ը (այն նույնպես պետք է ունենա type - String):
Վերջապես, ստեղծեք Piano class, որը ժառանգում է MusicInstrument class-ից (այն պետք է ունենա type - Keyboard): Piano class-ը պետք է փոփոխի play() մեթոդը, բայց այն չպետք է կարգավորվի նվագելիս:
Ծրագիրը պետք է ստեղծի Guitar, Violin և Piano class-ների օբյեկտներ, կանչի դրանց play() մեթոդները և վահանակի վրա ցույց տա ճիշտ հայտարարությունները․
Մուտք
Ելք
guitar = Guitar('Gibson'); violin = Violin('Stradivarius'); piano = Piano('Steinway'); guitar.play(); violin.play(); piano.play(); print(guitar.type); print(violin.type); print(piano.type)
Tuning the guitar Playing the instrument Tuning the violin Playing the instrument Playing the instrument String String Keyboard
Նշում. սկզբնավորման ժամանակ երաժշտական գործիքի name և type ատրիբուտները պետք է որպես պարամետր փոխանցվեն class-ի կոնստրուկտորին: play() մեթոդի կանչը պետք է տեղի ունենա առանց որևէ պարամետրի:
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue