Design and implement Java program as follows:

(1) There will be a Gift class with following attributes: id (combination of numbers and letters), size (values S, M, or L), and price

(2) There will be two child classes FruitBasket and SweetsBasket with the following additional attributes:

  • FruitBasket: number of fruits, include citrus fruits indication (true or false)
  • SweetsBasket: include nuts indication (true or false)

(3) The Gift class hierarchy must provide the following Functionality:

  • On creation, a gift instance must be given all attribute values except price which must be calculated and number of fruits which must be set by system
  • All attribute values can be changed after creation except id and the values that are calculated or set by the system
  • Price is calculated as follows:
    • There is a flat fee of 19.99 for S gift, 29.99 for M gift, and 39.99 for L gift.
    • Fruit basket gift has additional fee of 5.99 when it has citrus fruits.
  • Number of fruits in a basket is as follows: Small size has 6 fruits, M has 9 fruits, and L has 15 fruits
  • Each class must have a method to return or display the class's values to the console

(4) Implement OrderSystem class with main method with following functionality:

  • Order a gift
  • Change a gift
  • Display gift

(5) Your classes must be coded with correct encapsulation: private/protected attributes, get methods, and set methods and value validation

(6) There should be appropriate overloading and overriding methods

(7) OrderSystem should take advantage of the inheritance properties (e.g. use Gift variable regardless which gift instance as appropriate)

Capture execution

You should capture and label screen captures associated with compiling your code, and running the a passing and failing scenario for each functionality

Sample run 1

MENU
1: Order a Gift Basket
2: Change Gift Basket
3: Display Gift
9: Exit program

Enter your selection : 3

No gift has been ordered yet

MENU
1: Order a Gift Basket
2: Change Gift Basket
3: Display Gift
9: Exit program

Enter your selection : 9

Thank you for using the program. Goodbye!

Sample run 2

MENU
1: Order a Gift Basket
2: Change Gift Basket
3: Display Gift
9: Exit program

Enter your selection : 2

No gift has been ordered yet

Sample run 3

MENU
1: Order a Gift Basket
2: Change Gift Basket
3: Display Gift
9: Exit program

Enter your selection : 1

Do you want Fruit Basket (1) or Sweets Basket (2): 1
What size do you want: S, M, or L: S
Do you want citrus fruits included? true/false: true

MENU
1: Order a Gift Basket
2: Change Gift Basket
3: Display Gift
9: Exit program

Enter your selection : 3

FruitBasket [numFruits=6 haveCitrus=true size=S id=FB3150 price=25.98]

MENU
1: Order a Gift Basket
2: Change Gift Basket
3: Display Gift
9: Exit program

Enter your selection : 2

Current gift size is: S What size do you want? S, M, or L: M
Current basket citrus=true Do you want citrus fruits included? true/false: false

MENU
1: Order a Gift Basket
2: Change Gift Basket
3: Display Gift
9: Exit program

Enter your selection : 3

FruitBasket [numFruits=9 haveCitrus=false size=M id=FB3150 price=29.99]

MENU
1: Order a Gift Basket
2: Change Gift Basket
3: Display Gift
9: Exit program

Enter your selection : 9

Thank you for using the program. Goodbye!
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.