Method overloading as well as overriding is i of the tricky concept to original as well as that's why its i of the most pop theme inwards Java Interviews. You volition often come across questions similar what is deviation betwixt overloading as well as overriding? or can yous overload method inwards same class? during start few rounds of interview, mostly at telephonic round. Since its purpose of object oriented fundamentals its also practiced to know equally much close these concepts equally possible. In this article, I am sharing simply about of the basic but oft asked questions which are alone based upon overloading as well as overriding concept as well as their implementation inwards Java programming language. By going through these questions, You volition non only create good on interviews but also it volition improve your agreement of Java as well as OOP fundamentals. BTW, if yous are seriously preparing for Java interviews, simply preparing this theme volition non travel plenty as well as yous demand to fix other of import topics equally good e.g. Java Collection framework, multi-threading, JVM internals as well as garbage collections etc. If yous are inwards hurry, I would advise yous to convey a hold off at Java Programming Interview Exposed yesteryear Wrox publication, i of the meliorate mass on Java interviews.
1) What is method overloading inwards Java?
If yous receive got 2 method which does same matter its meliorate they receive got same name, but 2 method cannot receive got same cite until yous overload them. So overloading is a procedure of declaring 2 methods alongside same cite but dissimilar method signature e.g. System.out which is object of PrintStream aeroplane has several println() method to impress dissimilar information types e.g. byte, short, int, char, float as well as double. All of them are called overloaded method. Overloaded method calls are resolved during compile fourth dimension inwards Java as well as they must receive got dissimilar method signatures. See here to acquire to a greater extent than close method overloading inwards Java.
2) What is method overriding inwards Java?
Method overriding is simply about other way to define method alongside same cite but dissimilar code but it must travel inwards sub class. Overriding is based upon run-time Polymorphism equally method calls are resolved at run-time depending upon actual object. For instance if a variable of type Parent holds an object of Child aeroplane as well as then method invoked volition travel from tiddler aeroplane as well as non bring upwards class, provides its overridden. In guild to override a method, yous must follow rules of method overriding which agency declaring method alongside same signature inwards sub class. See here to acquire to a greater extent than close method overriding inwards Java.
3) What is method hiding inwards Java?
static method cannot travel overriding inwards Java because their method calls are resolved at compile fourth dimension but it didn't foreclose yous from declaring method alongside same cite inwards sub class. In this instance nosotros say that method inwards sub aeroplane has hided static method from bring upwards class. If yous receive got a instance where variable of Parent aeroplane is pointing to object of Child aeroplane as well as then also static method from Parent aeroplane is called because overloading is resolved at compile time. See here to acquire to a greater extent than close method hiding inwards Java.
4) What are rules of overloading a method inwards Java?
One as well as only dominion of method overloading inwards Java is that method signature of all overloaded method must travel different. Method signature is changed yesteryear changing either seat out of method arguments, or type of method arguments e.g. System.out.println() method is overloaded to convey dissimilar primitive types similar int, short, byte, float etc. They all convey simply i declaration but their type is different. You tin also alter method signature yesteryear changing guild of method declaration but that often leads to ambiguous code so meliorate to travel avoided. See here for amount listing of rules.
5) Difference betwixt method overloading as well as overriding?
Fundamental deviation betwixt overloading as well as overriding is that old took house during compile fourth dimension piece after took house during run-time. Due to this reason, its only possible to overload virtual methods inwards Java. You cannot overload methods which are resolved during compile fourth dimension e.g. private, static as well as in conclusion method cannot travel overridden inwards Java. Also, rules of method overloading as well as overriding are different, for instance inwards guild to overload a method its method signature must travel dissimilar but for overriding method it must travel same. See this image to acquire to a greater extent than deviation betwixt overriding as well as overloading inwards Java.
6) Can nosotros overload static method inwards Java?
Yes, its possible to overload static method inwards Java. You tin declare equally many static method alongside same cite equally yous desire until all of them receive got dissimilar method signature. Remember, render type is non purpose of method signature, so they must receive got either dissimilar seat out of arguments, or dissimilar type of argument. There is a 3rd alternative also which changes guild of declaration but I advise non to create that because it often resultant inwards ambiguous method call. It's real of import to follow these best practices piece overloading a static method inwards Java.
7) Can nosotros override static method inwards Java?
No, yous cannot override static method inwards Java because they are resolved as well as bonded during compile time. Since overriding is a run-time activeness as well as if a method telephone telephone is already resolved at compile fourth dimension as well as then it volition non convey house as well as that's why its non possible to override static method inwards Java. But, yous tin define simply about other static method of same signature inwards sub class, this is known equally method hiding. Actual method called volition depends upon the type of aeroplane as well as non on type of object equally its the instance alongside overriding. See here to acquire to a greater extent than close why yous cannot override static method inwards Java.
8) Can yous foreclose overriding a method without using in conclusion modifier?
Yes, in that place are simply about funky ways to foreclose method overriding inwards Java. Though in conclusion modifier is only for that purpose yous tin job someone keyword to foreclose method overriding. How? If yous recollect correctly, inwards guild to override a method, the aeroplane must travel extensible. If yous brand the constructor of bring upwards aeroplane someone as well as then its non possible to extend that aeroplane because its constructor volition non travel accessible inwards sub class, which is automatically invoked yesteryear sub aeroplane constructor, thus its non possible to override whatever method from that class. This technique is used inwards Singleton pattern pattern, where constructor is purposefully made someone as well as a static getInstance() method is provided to access singleton instance. See here to acquire to a greater extent than techniques to foreclose method overriding inwards Java.
9) Can nosotros override a someone method inwards Java?
No, yous cannot override someone method inwards Java. Since someone methods are non visible exterior the class, they are non available inwards sub-class thus they cannot travel overridden. By the way, how close overriding a someone method within an Inner class? Is it possible? See here to acquire to a greater extent than why yous cannot override someone method inwards Java.
10) What is co-variant method overriding?
One of the dominion of method overriding is that render type of overriding method must travel same equally overridden method but this restriction is relaxed footling fleck from Java 1.5 as well as straight off overridden method tin render sub aeroplane of render type of original method. This relaxation is known equally co-variant method overriding as well as it allows yous to withdraw casting at customer end. One of the best instance of this comes when yous override clone() method. Original Object.clone() method returns Object which needs to cast, but alongside co-variant method overriding yous tin direct render relevant type e.g. Date aeroplane returns object of java.util.Date instead of java.lang.Object. See hither to acquire to a greater extent than close co-variant method overriding inwards Java.
11) Can nosotros alter declaration listing of overridden method?
No, yous cannot alter the declaration listing of overridden method inwards Java. An overriding method must receive got same signature equally original method. Only render type tin travel changed that to only to sub type of render type of original method.
12) Can nosotros alter render type of method inwards subclass piece overriding?
No, yous cannot alter the render type of method during overriding. It would travel violation of rules of overriding. Though from Java five onward yous tin supersede the render type alongside sub type e.g. if original method has render type equally java.lang.Object as well as then yous tin alter render type of overridden method equally whatever type e.g. clone() method. This is also known equally co-variant method overriding inwards Java.
13) Can nosotros override a method which throws run-time exception without throws clause?
Yes, yous can. There is no restriction on throwing RuntimeException from overriding method. So if your original method throws NullPointerException than its non necessary to throw NPE from overriding method equally well.
14) How create yous telephone telephone super aeroplane version of an overriding method inwards sub class?
You tin telephone telephone it using super keyword. For instance if yous receive got a method calculate() inwards both bring upwards as well as tiddler aeroplane as well as then from tiddler aeroplane yous tin invoke bring upwards aeroplane method calculate() equally super.calculate(). It's real similar to calling super aeroplane constructor from sub aeroplane equally shown here.
15) What are rules of method overriding inwards Java?
Some rules of method overriding are next :
16) Can nosotros override a non-static method equally static inwards Java?
No, its non possible to define a non-static method of same cite equally static method inwards bring upwards class, its compile fourth dimension mistake inwards Java. See hither to acquire to a greater extent than close overriding static method inwards Java.
17) Can nosotros override constructor inwards Java?
No, yous cannot override constructor inwards Java because they are non inherited. Remember, nosotros are talking close overriding hither non overloading, yous tin overload create but yous cannot override them. Overriding ever happens at tiddler aeroplane as well as since constructor are non inherited as well as their cite is ever same equally the aeroplane cite its non possible to override them inwards Java, to acquire to a greater extent than close constructor come across here
18) Can nosotros override in conclusion method inwards Java?
No, yous cannot override in conclusion method inwards Java. Trying to override in conclusion method inwards subclass volition resultant inwards compile fourth dimension error. Actually making a method in conclusion is signal to all developer that this method is non for inheritance as well as it should travel job inwards its acquaint form. You mostly brand a method in conclusion due to safety reasons, to acquire to a greater extent than come across here.
19) Can yous overload or override principal method inwards Java?
Since main() is a static method inwards Java, it follows rules associated alongside static method, which agency yous tin overload principal method but yous cannot override it. By the way, fifty-fifty if yous overload a principal method, JVM volition ever telephone telephone the criterion public static void main(String args[]) method to start your program, if yous desire to telephone telephone your overloaded method yous demand to create it explicitly inwards your code equally shown here.
That's all close simply about Java interview questions from method overloading as well as overriding concept. I must acknowledge its a tricky concept to master. I receive got seen fifty-fifty experienced developer struggling to solve quiz as well as multiple alternative questions based upon overloading as well as overriding. So, if yous desire to create good on Java Interviews equally good equally wants to write good, powerful as well as flexible code using object oriented programming technique, spare simply about fourth dimension to sympathise overloading as well as overriding inwards Java. It volition assistance yous to leverage Polymorphism better.
Further Learning
Data Structures as well as Algorithms: Deep Dive Using Java
article]40 Core Java Questions from Phone Interviews [list] 15 Java Enum Interview Questions alongside Answers as well as Explanations [questions] 18 Java Interview Questions based upon GOF Design Patterns as well as OOP [questions] Top 21 Frequently asked Java interview questions for freshers [article] 12 Java Multithreading as well as Concurrency based Interview Questions [see here] JDBC Interview Questions as well as Answers for 2 to iv years experienced developers [see here] 10 Spring Framework based Interview Questions [article] 10 Must know Java Collection framework Interview Questions as well as Answers [read here] 10 Java Web Services based Questions [list] Top 10 Advanced Java Questions for Experienced as well as Senior Programmers [see here] 22 Array concepts based Interview Questions inwards Java? [answers]
Overloading as well as Overriding Interview Questions
Ok, let's start on questions. Here is my listing of 17 method overloading as well as overriding interview inquiry which covers basics equally good equally simply about tricky purpose of overloading as well as overriding. You tin also write simply about code to bear witness the concept as well as come across when compiler gives mistake as well as which method is acquire called at run-time.1) What is method overloading inwards Java?
If yous receive got 2 method which does same matter its meliorate they receive got same name, but 2 method cannot receive got same cite until yous overload them. So overloading is a procedure of declaring 2 methods alongside same cite but dissimilar method signature e.g. System.out which is object of PrintStream aeroplane has several println() method to impress dissimilar information types e.g. byte, short, int, char, float as well as double. All of them are called overloaded method. Overloaded method calls are resolved during compile fourth dimension inwards Java as well as they must receive got dissimilar method signatures. See here to acquire to a greater extent than close method overloading inwards Java.
2) What is method overriding inwards Java?
Method overriding is simply about other way to define method alongside same cite but dissimilar code but it must travel inwards sub class. Overriding is based upon run-time Polymorphism equally method calls are resolved at run-time depending upon actual object. For instance if a variable of type Parent holds an object of Child aeroplane as well as then method invoked volition travel from tiddler aeroplane as well as non bring upwards class, provides its overridden. In guild to override a method, yous must follow rules of method overriding which agency declaring method alongside same signature inwards sub class. See here to acquire to a greater extent than close method overriding inwards Java.
3) What is method hiding inwards Java?
static method cannot travel overriding inwards Java because their method calls are resolved at compile fourth dimension but it didn't foreclose yous from declaring method alongside same cite inwards sub class. In this instance nosotros say that method inwards sub aeroplane has hided static method from bring upwards class. If yous receive got a instance where variable of Parent aeroplane is pointing to object of Child aeroplane as well as then also static method from Parent aeroplane is called because overloading is resolved at compile time. See here to acquire to a greater extent than close method hiding inwards Java.
4) What are rules of overloading a method inwards Java?
One as well as only dominion of method overloading inwards Java is that method signature of all overloaded method must travel different. Method signature is changed yesteryear changing either seat out of method arguments, or type of method arguments e.g. System.out.println() method is overloaded to convey dissimilar primitive types similar int, short, byte, float etc. They all convey simply i declaration but their type is different. You tin also alter method signature yesteryear changing guild of method declaration but that often leads to ambiguous code so meliorate to travel avoided. See here for amount listing of rules.
5) Difference betwixt method overloading as well as overriding?
Fundamental deviation betwixt overloading as well as overriding is that old took house during compile fourth dimension piece after took house during run-time. Due to this reason, its only possible to overload virtual methods inwards Java. You cannot overload methods which are resolved during compile fourth dimension e.g. private, static as well as in conclusion method cannot travel overridden inwards Java. Also, rules of method overloading as well as overriding are different, for instance inwards guild to overload a method its method signature must travel dissimilar but for overriding method it must travel same. See this image to acquire to a greater extent than deviation betwixt overriding as well as overloading inwards Java.
6) Can nosotros overload static method inwards Java?
Yes, its possible to overload static method inwards Java. You tin declare equally many static method alongside same cite equally yous desire until all of them receive got dissimilar method signature. Remember, render type is non purpose of method signature, so they must receive got either dissimilar seat out of arguments, or dissimilar type of argument. There is a 3rd alternative also which changes guild of declaration but I advise non to create that because it often resultant inwards ambiguous method call. It's real of import to follow these best practices piece overloading a static method inwards Java.
7) Can nosotros override static method inwards Java?
No, yous cannot override static method inwards Java because they are resolved as well as bonded during compile time. Since overriding is a run-time activeness as well as if a method telephone telephone is already resolved at compile fourth dimension as well as then it volition non convey house as well as that's why its non possible to override static method inwards Java. But, yous tin define simply about other static method of same signature inwards sub class, this is known equally method hiding. Actual method called volition depends upon the type of aeroplane as well as non on type of object equally its the instance alongside overriding. See here to acquire to a greater extent than close why yous cannot override static method inwards Java.
8) Can yous foreclose overriding a method without using in conclusion modifier?
Yes, in that place are simply about funky ways to foreclose method overriding inwards Java. Though in conclusion modifier is only for that purpose yous tin job someone keyword to foreclose method overriding. How? If yous recollect correctly, inwards guild to override a method, the aeroplane must travel extensible. If yous brand the constructor of bring upwards aeroplane someone as well as then its non possible to extend that aeroplane because its constructor volition non travel accessible inwards sub class, which is automatically invoked yesteryear sub aeroplane constructor, thus its non possible to override whatever method from that class. This technique is used inwards Singleton pattern pattern, where constructor is purposefully made someone as well as a static getInstance() method is provided to access singleton instance. See here to acquire to a greater extent than techniques to foreclose method overriding inwards Java.
9) Can nosotros override a someone method inwards Java?
No, yous cannot override someone method inwards Java. Since someone methods are non visible exterior the class, they are non available inwards sub-class thus they cannot travel overridden. By the way, how close overriding a someone method within an Inner class? Is it possible? See here to acquire to a greater extent than why yous cannot override someone method inwards Java.
10) What is co-variant method overriding?
One of the dominion of method overriding is that render type of overriding method must travel same equally overridden method but this restriction is relaxed footling fleck from Java 1.5 as well as straight off overridden method tin render sub aeroplane of render type of original method. This relaxation is known equally co-variant method overriding as well as it allows yous to withdraw casting at customer end. One of the best instance of this comes when yous override clone() method. Original Object.clone() method returns Object which needs to cast, but alongside co-variant method overriding yous tin direct render relevant type e.g. Date aeroplane returns object of java.util.Date instead of java.lang.Object. See hither to acquire to a greater extent than close co-variant method overriding inwards Java.
11) Can nosotros alter declaration listing of overridden method?
No, yous cannot alter the declaration listing of overridden method inwards Java. An overriding method must receive got same signature equally original method. Only render type tin travel changed that to only to sub type of render type of original method.
12) Can nosotros alter render type of method inwards subclass piece overriding?
No, yous cannot alter the render type of method during overriding. It would travel violation of rules of overriding. Though from Java five onward yous tin supersede the render type alongside sub type e.g. if original method has render type equally java.lang.Object as well as then yous tin alter render type of overridden method equally whatever type e.g. clone() method. This is also known equally co-variant method overriding inwards Java.
13) Can nosotros override a method which throws run-time exception without throws clause?
Yes, yous can. There is no restriction on throwing RuntimeException from overriding method. So if your original method throws NullPointerException than its non necessary to throw NPE from overriding method equally well.
14) How create yous telephone telephone super aeroplane version of an overriding method inwards sub class?
You tin telephone telephone it using super keyword. For instance if yous receive got a method calculate() inwards both bring upwards as well as tiddler aeroplane as well as then from tiddler aeroplane yous tin invoke bring upwards aeroplane method calculate() equally super.calculate(). It's real similar to calling super aeroplane constructor from sub aeroplane equally shown here.
15) What are rules of method overriding inwards Java?
Some rules of method overriding are next :
- Overriding method cannot throw higher exception than overridden one, but that's only truthful for checked exception.
- Overriding method cannot limit access of overridden method e.g. if original method is world as well as then overriding method must travel public, but it tin expand access e.g. if original method is protected than overriding method tin travel protected or public.
16) Can nosotros override a non-static method equally static inwards Java?
No, its non possible to define a non-static method of same cite equally static method inwards bring upwards class, its compile fourth dimension mistake inwards Java. See hither to acquire to a greater extent than close overriding static method inwards Java.
17) Can nosotros override constructor inwards Java?
No, yous cannot override constructor inwards Java because they are non inherited. Remember, nosotros are talking close overriding hither non overloading, yous tin overload create but yous cannot override them. Overriding ever happens at tiddler aeroplane as well as since constructor are non inherited as well as their cite is ever same equally the aeroplane cite its non possible to override them inwards Java, to acquire to a greater extent than close constructor come across here
18) Can nosotros override in conclusion method inwards Java?
No, yous cannot override in conclusion method inwards Java. Trying to override in conclusion method inwards subclass volition resultant inwards compile fourth dimension error. Actually making a method in conclusion is signal to all developer that this method is non for inheritance as well as it should travel job inwards its acquaint form. You mostly brand a method in conclusion due to safety reasons, to acquire to a greater extent than come across here.
19) Can yous overload or override principal method inwards Java?
Since main() is a static method inwards Java, it follows rules associated alongside static method, which agency yous tin overload principal method but yous cannot override it. By the way, fifty-fifty if yous overload a principal method, JVM volition ever telephone telephone the criterion public static void main(String args[]) method to start your program, if yous desire to telephone telephone your overloaded method yous demand to create it explicitly inwards your code equally shown here.
That's all close simply about Java interview questions from method overloading as well as overriding concept. I must acknowledge its a tricky concept to master. I receive got seen fifty-fifty experienced developer struggling to solve quiz as well as multiple alternative questions based upon overloading as well as overriding. So, if yous desire to create good on Java Interviews equally good equally wants to write good, powerful as well as flexible code using object oriented programming technique, spare simply about fourth dimension to sympathise overloading as well as overriding inwards Java. It volition assistance yous to leverage Polymorphism better.
Further Learning
Data Structures as well as Algorithms: Deep Dive Using Java
article]
No comments:
Post a Comment