question archive Assume that class Vehicle contains the following method
Subject:Computer SciencePrice:9.82 Bought3
Assume that class Vehicle contains the following method. public void setPn'celdoulJle price] { 1"" implementation not shown "7' } Also assume that class Car extends Vehicle and contains the following method. public void setPriceldouble price) { 3"" implementation not shown *I' } Assume Vehicle v is initialized as follows. Vehicle v = new Carl): v.5etPricel1000.U}: Which of the following is true? (9 The code above will cause a compile-time error, because a subclass cannot have a method with the same name and the same signature as its superclass. The code above will cause a run-time error, because a subclass cannot have a method with the same name and the same signature as its superclass. © The code above will cause a compile-time error because of type mismatch. ® The code v.5etPricel1000.D); will cause the setPrice method of the Car class to be called. (9 The code v.setPrice(lDOlJ.D); will cause the setPrice method of the Vehicle class to be called.
Correct answer is D
D The code V.setPrice(1000.0): will cause the setPrice method of the Car class to be called.
Step-by-step explanation
Based on Concept of overriding :
In any object-oriented programming language, Overriding is a feature that allows a subclass or child class to provide a specific implementation of a method that is already provided by one of its super-classes or parent classes. When a method in a subclass has the same name, same parameters or signature, and same return type(or sub-type) as a method in its super-class, then the method in the subclass is said to override the method in the super-class.
Method overriding is one of the way by which java achieve Run Time Polymorphism.The version of a method that is executed will be determined by the object that is used to invoke it. If an object of a parent class is used to invoke the method, then the version in the parent class will be executed, but if an object of the subclass is used to invoke the method, then the version in the child class will be executed. In other words, it is the type of the object being referred to (not the type of the reference variable) that determines which version of an overridden method will be executed.
// A Simple Java program to demonstrate
// method overriding in java
// Base Class
class Parent {
void show()
{
System.out.println("Parent's show()");
}
}
// Inherited class
class Child extends Parent {
// This method overrides show() of Parent
@Override
void show()
{
System.out.println("Child's show()");
}
}
// Driver class
class Main {
public static void main(String[] args)
{
// If a Parent type reference refers
// to a Parent object, then Parent's
// show is called
Parent obj1 = new Parent();
obj1.show();
// If a Parent type reference refers
// to a Child object Child's show()
// is called. This is called RUN TIME
// POLYMORPHISM.
Parent obj2 = new Child();
obj2.show();
}
}
Output:
Parent's show()
Child's show()