More than 3000 questions in repository. There are more than 900 unanswered questions. Click here and help us by providing the answer. Have a video suggestion. Click Correct / Improve and please let us know.
Q756. Can a class implement two Interfaces having default method with same name and signature ?
public interface DefaultMethodInterface { default public void defaultMethod(){ System.out.println("DefaultMethodInterface"); } }
public interface DefaultMethodInterface2 { default public void defaultMethod(){ System.out.println("DefaultMethodInterface2"); } }
public class HelloJava8 implements DefaultMethodInterface,DefaultMethodInterface2 { public static void main(String[] args){ DefaultMethodInterface defMethIn = new HelloJava8(); defMethIn.defaultMethod(); } }
Ans. No. Compiler gives error saying "Duplicate Default Methods"
Help us improve. Please let us know the company, where you were asked this question :
Q757. What If we make the method as abstract in another Interface ?
public interface DefaultMethodInterface { default public void defaultMethod(){ System.out.println("DefaultMethodInterface"); } }
public interface DefaultMethodInterface2 { public void defaultMethod(){ System.out.println("DefaultMethodInterface2"); } }
public class HelloJava8 implements DefaultMethodInterface,DefaultMethodInterface2 { public static void main(String[] args){ DefaultMethodInterface defMethIn = new HelloJava8(); defMethIn.defaultMethod(); } }
Ans. Even then the Compiler will give error saying that there is a conflict.
Help us improve. Please let us know the company, where you were asked this question :
Q758. What if we override the conflicting method in the Class ?
public interface DefaultMethodInterface { default public void defaultMethod(){ System.out.println("DefaultMethodInterface"); } }
public interface DefaultMethodInterface2 { default public void defaultMethod(){ System.out.println("DefaultMethodInterface2"); } }
public class HelloJava8 implements DefaultMethodInterface,DefaultMethodInterface2 { public static void main(String[] args){ DefaultMethodInterface defMethIn = new HelloJava8(); defMethIn.defaultMethod(); }
public void defaultMethod(){ System.out.println("HelloJava8"); } }
Ans. There won't be any error and upon execution the overriding class method will be executed.
Help us improve. Please let us know the company, where you were asked this question :
Q759. What will happen if there is a default method conflict as mentioned above and we have specified the same signature method in the base class instead of overriding in the existing class ?
Ans. There won't be any problem as the Base class method will have precedence over the Interface Default methods.
Help us improve. Please let us know the company, where you were asked this question :
Q760. If a method definition has been specified in Class , its Base Class , and the interface which the class is implementing, Which definition will be picked if we try to access it using Interface Reference and Class object ?
Ans. Class method definition is overriding both the definitions and hence will be picked.
Help us improve. Please let us know the company, where you were asked this question :
Q761. If a method definition has been specified in the Base Class and the interface which the class is implementing, Which definition will be picked if we try to access it using Interface Reference and Class object ?
Ans. Base Class Definition will have precedence over the Interface Default method definition.
Help us improve. Please let us know the company, where you were asked this question :
Q763. Can we have default method with same name and signature in the derived Interface as the static method in base Interface and vice versa ?
Ans. Yes , we can do that as static methods are not accessible using references and hence cannot lead to conflict. We cannot do inverse as Default methods cannot be overridden with the static methods in derived interface.
Help us improve. Please let us know the company, where you were asked this question :
Very frequently asked. Usually followed by questions related to private constructor and synchronized access. Frequently asked in JPMorgan and TCS (Based on 2 feedback)
Ans. In case we need to verify that a method is being called with any argument and not a specific argument we can use Mockito.any(Class), Mockito.anyString, Mockito.anyLong etc.
Help us improve. Please let us know the company, where you were asked this question :
Ans. They should be named all in upper case with underscore separating words.
Moreover the name should be such that it identifies the value. For example, if we are using constant for employee Id 123, it should be named something like EMPLOYEE_ID_123 and not EMPLOYEE_ID
Help us improve. Please let us know the company, where you were asked this question :
Q775. How do you define a class of constants in Java?
Ans. Make the class as final. Disable the object construction by making constructor private. Keep only Static Final Variables declared and Defined at the same time.
Help us improve. Please let us know the company, where you were asked this question :
If we add Enum constants to a sorted collection ( Treemap , TreeSet ), What will be the order in which they will be maintained ?
Sorted Collection wont maintain them in any order.
Insertion Order
Order in which constants are declared.
Natural Sorting Order.
enums are intrinsically ..
private
public
static
final
Enums cannot be declared ..
private
public
static
final
Q779. What will be the output of the following code ?
enum Day {
MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
}
public class BuggyBread1{
public static void main (String args[]) {
Set mySet = new HashSet();
mySet.add(Day.SATURDAY);
mySet.add(Day.WEDNESDAY);
mySet.add(Day.FRIDAY);
mySet.add(Day.WEDNESDAY);
for(Day d: mySet){
System.out.println(d);
}
}
}
Ans. FRIDAY , SATURDAY and WEDNESDAY will be printed but the order cannot be determined.
Only one FRIDAY will be printed as Set doesn't allow duplicates. Order cannot be determined as HashSet doesn't maintain elements in a particular order.
Help us improve. Please let us know the company, where you were asked this question :
TreeSet maintains the elements in the ascending order which is identified by the compareTo method. compareTo method in String has been defined such that it results in the natural alphabetic Order. Here the elements in the TreeSet are of String and not of Integer. In String Natural Order, 111 comes before 2 as ascii of 1st character first determines the order.
Help us improve. Please let us know the company, where you were asked this question :