This assignment will assess your skills and knowledge on implementing interfaces to define contracts and enforce common behavior across multiple classes.
Context: You are tasked with developing a software application for a car rental agency. The application needs to handle different types of vehicles, including cars, motorcycles, and trucks. To enforce a common behavior and ensure consistency among these vehicle types, you decide to utilize interfaces. Additionally, you want to incorporate various small modules into the question to make it engaging and interactive for the developers.
For this assignment, Compose a Java programming question that incorporates the following modules:
Design and implement an interface named “Vehicle” that includes methods for retrieving the vehicle’s make, model, and year of manufacture.
Develop a class named “Car” that implements the Vehicle and “CarVehicle” interfaces. This interface includes additional methods for setting and retrieving the number of doors and the fuel type (petrol, diesel, or electric).
Construct a class named “Motorcycle” that also implements Vehicle and the “MotorVehicle” interfaces. This interface should have methods for setting and retrieving the number of wheels and the type of motorcycle (sport, cruiser, or off-road).
Generate a class named “Truck” that implements the Vehicle and “TruckVehicle” interfaces. This interface should include methods for setting and retrieving the cargo capacity (in tons) and the transmission type (manual or automatic).
Integrate all the classes into a main program that allows the user to create objects of different vehicle types, provide relevant information, and display the details of each vehicle.
You will be accessed based on the following criteria:
The interface design in the Vehicle Information System provides a contract specifying the methods for retrieving and setting vehicle details, ensuring a consistent structure for different vehicle types.
The class implementation in the Vehicle Information System translates the interface specifications into concrete implementations for different vehicle types, enabling the storage and retrieval of specific attributes and behaviors.
The main program in the Vehicle Information System allows users to interactively create, input, and display details of various vehicle objects, providing a comprehensive interface for managing and accessing vehicle information.
The code quality in the Vehicle Information System emphasizes readability, maintainability, and adherence to best practices, ensuring a clean and well-structured codebase that promotes efficient development and future scalability.
The error handling mechanism in the Vehicle Information System effectively manages and gracefully handles potential exceptions or invalid user inputs, ensuring a robust and stable application experience.
The documentation in the Vehicle Information System provides clear and comprehensive explanations of classes, methods, and their functionalities, aiding developers in understanding and maintaining the codebase effectively.