+ 4
What is the difference between interface and abstract classes?
3 Réponses
+ 7
Interface: 
Interface are just like a Contract what a class gets into & the class should follow the contract.
Incomplete methods inherited from an Interface should be Completed in a Class.
If you don't Complete the method in the class then you will get an Error.
Difference in Example Wise : 
Public interface A
{
public void test ();
//An Incomplete Method 
}
Public class B implements A
{
public static void main(String[] args) 
     {    
        B b= new B();  
          b.test(); 
      }
}
Key Difference for you :
- Interface can story only incomplete methods
- By default every method is abstract in an Interface. 
- Every variable by default in an Interface is Public Static & Final.
- Multiple Inheritance is Supported in Interface's.
- We can Never create the Object of Interface.
- We can Not keep a Main Method in an Interface. 
Abstract Class:
Abstract classes are Partial incomplete in there Nature.
Every method should have abstract keyword to specify that it is Incomplete.
Difference in Example Wise : 
public abstract class  A
{
public abstract void test1();
//An Incomplete Method 
public void test2();
     {
     System.out.println("Inside  A");
     }
}
Public class B implements A
{
public void test1()
    { 
      System.out.println("Inside  A"); 
      }
public static void main(String[] args) 
     {    
        B b= new B();  
          b.test1();
          b.test2(); 
      }
}
Key Difference for you :
- An abstract class can consist of both Complete & Incomplete methods in it.
- Every method by default is Non-Abstract.
- We should use abstract keyword to specificy in complete method.
- Variable by default is Not Final.
- Multiple Inheritance in Abstract class is not possible.
- Inheritance between an Abstract class & Interface  is possible.
+ 2
how come there are so many questions about interfaces and abstract classes?
https://www.sololearn.com/Discuss/363907/?ref=app
+ 1
As far as I know from C# and Java:
Abstract Class:
- needs to be inherited 
- can contain state members and implementations of methods
- derived classes don't require to implement the abstract methods
Interfaces:
- needs to be implemented 
- doesn't have any form of implementation
- classes that implement interfaces require to implement every method of each interface used
You can only use one abstract class because of the  single-inheritance limitations of C# and Java, but you can implement multiple interfaces. 
Feel free to add/correct me if I missed something.



