Explain overriding methods and the solution, JAVA Programming

Assignment Help:

Explain Overriding Methods: The Solution

The object oriented solution to this problem is to describe a new class, call it SlowCar, that inherits from Car and imposes the additional constraint in which a car may not go faster than 70 mph (112.65 kph).

To do this you'll required to adjust the two places that speed can be changed, the constructor and the accelerate() method. The constructor has a different name since all constructors are named after their classes other than the accelerate() method must be overridden. This means the subclass has techniques with the similar signature as the method in the superclass.
public class SlowCar extends Car {

private static final double speedLimit = 112.65408; // kph == 70 mph

public SlowCar(String licensePlate, double speed, double maxSpeed,
String make, String model, int year, int numberOfPassengers, int numDoors) {

super(licensePlate, 0, maxSpeed, make, model, year,
numberOfPassengers, numDoors);
this.accelerate(speed);

}

public void accelerate(double deltaV) {

double speed = this.getSpeed() + deltaV;

if (speed > speedLimit) {
super.accelerate(speedLimit - this.getSpeed());
}
else {
super.accelerate(deltaV);
}
}
}
The first thing to remember about this class is what it doesn't have, getSpeed(), getLicensePlate(), getMaximumSpeed(), setLicensePlate() methods or speed, maxSpeed and numDoors fields. All of these are given through the superclass Car. Nothing about them has modified so they don't required to be repeated here.

Further look at the accelerate() method. This is various than the accelerate() method in Car. It imposes the additional constraint.

The constructor is a little more complicated. First remember that if you're going to use a non-default constructor, which is a constructor with arguments, you do required to write a constructor for the subclass, even if it's just going to do the exact similar thing as the matching constructor in the superclass. You cannot easily inherit Car's constructor because in which constructor is named Car() and this one must be named SlowCar().

The constructor requires to set the value of name, url, and description. Therefore they're not accessible from the subclass. In the other words they are set through calling the superclass's constructor using the keyword super. While super is used as a method in the first non-blank line of a constructor, it stands for the constructor of this class's superclass.
The immediate superclass's constructor will be known as in the first non-blank line of the subclass's constructor. If you don't call it explicitly, then Java will call it for you along with no arguments. It's a compile time error if the immediate superclass doesn't have a constructor with no arguments and you don't call a various constructor in the first line of the subclass's constructor.

The use of the ternary operator in the constructor call is unusual. Therefore, it's essential to meet the compiler's requirement that the invocation of super be the first line in the subclass constructor. Or else this could be written more clearly using only if-else.


Related Discussions:- Explain overriding methods and the solution

Area under curve , what will be the logic? in C program #include ...

what will be the logic? in C program #include float start_point, /* GLOBAL VARIABLES */ end_point, total_area; int numtraps; m

Explain in brief java applet, Explain in brief Java applet? It is a...

Explain in brief Java applet? It is a java program. It has been designed for transmitting Java code over the internet. It's automatically executed by Java-enabled W

Maintenance and administration activities, Maintenance and Administration a...

Maintenance and Administration activities: Name                        : e-Commerce OS and Soft wares    : Websphere 6.0, IHS, Unix, Weblogic 8.1   Maintenance an

Interfaces and generics, In this assignment, you are provided with an inter...

In this assignment, you are provided with an interface that contains a generic type. You are asked to create two classes that implement this interface. A. The Sequenced Interfac

What is pop, The Post Office Protocol is an application-level protocol with...

The Post Office Protocol is an application-level protocol within an intranet which is used by the local e-mail clients to send and retrieve e-mails from a remote server those are l

Write short notes on (i) rmi and (ii) corba, Question 1 Write a program in...

Question 1 Write a program in Java to find the highest of any five numbers. How do you compile and execute this Java program? Question 2 Write a program to explain the Except

Android app for username and password, Hi, I have an android sdk assignment...

Hi, I have an android sdk assignment which is due monday night. The user will enter the following information. url address www.google.com user name [email protected] password 12

Java error handling mechanism, Errors: When a dynamic linking failure or ...

Errors: When a dynamic linking failure or some other "hard" failure in the virtual machine happens, the virtual machine gives an Error. Typical Java programs could not find Error

Card, Create a class called DeckOfCards that stores 52 objects of the Card ...

Create a class called DeckOfCards that stores 52 objects of the Card class. Include methods to shuffle the deck, deal a deck, and report the number of cards left in the deck. The s

Life span of variables, While you declare a variable in a function, the var...

While you declare a variable in a function, the variable can be accessed within that function only.  While you exit the function, the variable is destroyed.  These variables are ca

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd