1. An Abstract class has been created using Abstract keyword while interface has been created using interface keyword.
public interface idef{ }
public abstract class cal{ }
2. Abstract class can have both abstract and non-abstract method which means we can also define methods inside abstract class. But in interface we can only declare methods.
public interface idef
{
int sum(int x, int y);
}
public abstract class cal
{
//we only declare method
public abstract int div(int x, int y);
//declare and define method
public int mul(int x, int y)
{
return x * y;
}
}
3. We can’t declare variables in interface. But can declare inside abstract class. Note: - we can declare properties inside interface.
4. A class can inherit only one abstract class but it can implement more than one interfaces.
5. We don’t specify any access specifier inside interface but in abstract class we can.