Redesign the Progression class to be abstract and generic, producing a sequence of values of generic type T, and supporting a single constructor that accepts an initial value. Make all corresponding modifications to the rest of the classes in our hierarchy so that they remain as nongeneric classes, while inheriting from the new generic Progression class.
Want to see the full answer?
Check out a sample textbook solutionChapter 2 Solutions
Data Structures and Algorithms in Java
Additional Engineering Textbook Solutions
Java How To Program (Early Objects)
Starting Out with Java: From Control Structures through Data Structures (4th Edition) (What's New in Computer Science)
Starting Out with Python (4th Edition)
Introduction To Programming Using Visual Basic (11th Edition)
Objects First with Java: A Practical Introduction Using BlueJ (6th Edition)
Computer Systems: A Programmer's Perspective (3rd Edition)
- For your application, explain the benefits of interfaces over abstract classes.arrow_forwardUse the API documentation for the AbstractList class to write a concrete class that maintains an unmodifiable list.arrow_forwardComputer Science There are clearly some similarities in the implementations of Taxi and Shuttle that suggest use of inheritance to represent them. Introducing inheritance is the primary task of this assessment. -The Ezcab class, The Ezcab class maintains separate lists of taxis and shuttles and destinations with destination fares (you can hardcode destination fares). It has a lookup method that searches for a taxi/shuttle with a given ID. -The Taxi and Shuttle classes share some common attributes – location and destination. They also have some common methods – getLocation, getDestination, getStatus and setDestination. -Vehicle is the superclass of both Taxi and Shuttle. This class involves placing the common fields and methods into Vehicle and removing them from Taxi and Shuttle. -Modify Taxi and Shuttle class to indicate that it is a subclass of Vehicle. You can keep the id field in Vehicle class and getId,SetId methods. -Arrange for Taxi's constructor to call the constructor of…arrow_forward
- Make an interaction diagram for the parking office class below. We have included the class code below. The diagram should not be hand-drawn Use the class diagram to better understand all classes in our system public class ParkingOffice {String name;String address;String phone;List<Customer> customers;List<Car> cars;List<ParkingLot> lots;List<ParkingCharge> charges; public ParkingOffice(){customers = new ArrayList<>();cars = new ArrayList<>();lots = new ArrayList<>();charges = new ArrayList<>();}public Customer register() {Customer cust = new Customer(name,address,phone);customers.add(cust);return cust;}public Car register(Customer c,String licence, CarType t) {Car car = new Car(c,licence,t);cars.add(car);return car;}public Customer getCustomer(String name) {for(Customer cust : customers)if(cust.getName().equals(name))return cust;return null;}public double addCharge(ParkingCharge p) {charges.add(p);return p.amount;}public String[]…arrow_forwardAre there any speed trade-offs associated with preferring Interfaces over abstract classes?arrow_forwardAbstract classes and interfaces can both be used to specify common behavior of objects.How do you decide whether to use an interface or an abstract class? Explain youranswer.arrow_forward
- use the design pattern for collecting objects. We are going to model a Orchard with trees. An Orchard uses an ArrayList to keep track of Tree objects. You will write both a Orchard class and a Tree class. A Tree has a type and a height. Provide a constructor that takes type and height, in that order. Provide getters and setters for the instance variables. This is the design pattern for managing properties of objects. An Orchard has a constructor that takes no parameters. Remember it must initialize the instance variable. It also has methods ○ add() Adds the specified Tree to the Orchard ○ tallest() Gets the type of the tallest Tree in the Orchard or null if the Orchard is empty. Initialize the tallest with the first element. ○ contains() determines if a Tree of the given type is in the Orchard. Returns true if a Tree of the given type is in the Orchard. Otherwise false. ○ treeList() gets an ArrayList<String> containing the types of all…arrow_forwardJustification for your preference for interfaces over abstract classes.arrow_forwardAnswer the given question with a proper explanation and step-by-step solution. The base class Pet has protected fields petName, and petAge. The derived class Cat extends the Pet class and includes a private field for catBreed. Complete main() to: create a generic pet and print information using printInfo(). create a Cat pet, use printInfo() to print information, and add a statement to print the cat's breed using the getBreed() method.arrow_forward
- Please design class template RankingList, where elements are sorted in such a way that the element with the highest rank is the first one (an example can be a ranking list of students applying for scholarships).Please provide all data members (and explain their meaning) and all headings of public methods (without their implementations)with explanations of their behaviors.arrow_forwardYou have to implement program that compares graduate students based on their ranks. The design of the program is given in the following UML diagram: • Student class: Base class that GradStudent extends. • GradStudent class: The objects from this class will be used for comparisons. • Rankable interface: Defines the implementation needed for comparison. GradStudent implements this interface. • Test class will be used to get student information from the user and demonstrate the comparison of students.arrow_forwardUse the aggregation (composition) concept to define and implement the class line(p1.x, p1.y, p2.x, p2.y) by using two points variables P1, and P2 of type point2D class defined in Q1. Beside the two points P1 and P2, the line class has the following functions: print(), MoveRel(Dx,Dy) (use the point2D’s MoveRel(Dx,Dy) function of the two points to achieve that), line(), line(x1,y1,x2,y2), line(P2D1,P2D2). * Your answerarrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education