An online shop offers three ways to ship a parcel. Standard shipping is the basic one. Express and Economy are kinds of shipping too: they answer the same two questions, what the option is called and what it costs, but each in its own way. So each one overrides the parent's methods with its own versions.
Implement the class Shipping, the standard option:
name()returns"Standard".cost(weight)returns5 + weight: a base price of 5, plus 1 for each kilogram.
and two classes that inherit from Shipping and override both methods:
Express:name()returns"Express", andcost(weight)returns10 + 2 * weight.Economy:name()returns"Economy", andcost(weight)returns3plus half the weight, rounded down to a whole number: half of 7 is 3.
The input lists parcels, one per line: the option (standard, express or economy) and the weight. For each line, the code that tests your classes creates that option and prints <name>: <cost> from its name() and cost(weight). The two calls are the same for every option (where variables have types, through a variable of the parent type Shipping); because the methods are overridden, each option answers with its own version. The starter code spells these names the way your language does.
Example 1:
Input:
standard 4
express 4
economy 4
Output:
Standard: 9
Express: 18
Economy: 5
Explanation: The same parcel of 4 kilograms costs 5 + 4 = 9 with Standard, 10 + 2 × 4 = 18 with Express
and 3 + 2 = 5 with Economy (half of 4 is 2).
Example 2:
Input:
standard 0
express 0
economy 0
Output:
Standard: 5
Express: 10
Economy: 3
Explanation: With a weight of 0, only the base prices are left.
Example 3:
Input:
economy 7
economy 1
standard 7
express 7
Output:
Economy: 6
Economy: 3
Standard: 12
Express: 24
Explanation: Economy halves the weight and rounds down: half of 7 is 3, so 3 + 3 = 6, and half of 1 is 0, so 3 + 0 = 3.
Constraints:
0 <= weight <= 1000, a whole number of kilograms.- At most
100parcels per test case.
Free plan: 30 tutor messages. PRO is unlimited.
