Why does java doesnot support multiple inheritance?
Answer Posted / deep
Multiple inheritance Oops i think diamond problem..
class A {
public void x() {
System.out.println("Hello");
}
class B extends A {
public void x() {
System.out.println("Hello");
}
class C extends A {
public void x() {
System.out.println("Hello");
}
// Main class
class AB extends B,C // Remember this is not possible in java, a class can extend only one class in java..
{
public static void main(String args[]) {
AB a = new AB();
a.x(); // compiler gets confused whom should i call.. which methods should i invoke since both methods has same name i.e public void x(), complier get scared and raise an error of ambiguity
}
}
To avoid this type of situation, designers of java decided that a class can extends only one class so there would be no ambiguity of methods.. and to over come this issue they added interface..
class can implements n number of interface but can extend only one class.. a interface can extends n number of interface..
Variables declared inside interface are by default,, static and final.. and methods are abstract i.e unimplemented methods, that doesn't have body.. methods of interface are by default abstract and public..
you can make interface public or depends on your requirement.. if you want a interface to access outside of another package better make it public cause non public classes are confined within same package..
| Is This Answer Correct ? | 1 Yes | 0 No |
Post New Answer View All Answers
How is a structure different from array ?
Why singleton pattern is better than creating singleton class with static instance?
What is java reflection?
What is the difference between class forname and new?
What isan abstract class and when do you use it?
Why string is immutable or final in java
What is the disadvantage of synchronization?
What is == in java?
How can we create an immutable class in java?
What is meant by collection in java?
Write a program to find maximum and minimum number in array?
Assume a thread has lock on it, calling sleep() method on that thread will release the lock?
What is the difference between import java.util.date and java .util?
how to write a program for sending mails between client and server
Is java code slower than native code?