You build three structs that greet people.
Greeter is the plain one. PirateGreeter and FormalGreeter embed Greeter, as in the Inheritance lesson.
Each struct has a method greet(name). The two children declare their own greet. It overrides (shadows) the one they got from Greeter.
- In
Greeter,greet(name)returns "Hello, <name>". - In
PirateGreeter, it returns "Ahoy, <name>!". - In
FormalGreeter, it returns "Good day, <name>.".
Each input line is a kind of greeter, then a person's name. The kinds are greeter, pirate and formal.
For each line, the test code makes that greeter and prints what greet(name) returns.
Example 1:
Input:
greeter Ann
pirate Bob
formal Cy
Output:
Hello, Ann
Ahoy, Bob!
Good day, Cy.
Explanation: Each greeter answers with its own version of greet.
Example 2:
Input:
pirate Mia
formal Mia
greeter Mia
Output:
Ahoy, Mia!
Good day, Mia.
Hello, Mia
Explanation: The same name gets three different greetings.
Example 3:
Input:
formal Lee
pirate Jack
formal Max
Output:
Good day, Lee.
Ahoy, Jack!
Good day, Max.
Explanation: No plain greeter here.
Each line still gets its own greeting.
Constraints:
- A name is one word of 1 to 20 English letters.
- 1 to 100 lines per test case.
Free plan: 30 tutor messages. Premium is unlimited.
