interface A { public void m1(); }
**//Gives error**
class D implements A { public void m1(int x) { } }
**//this doen't**
abstract class G implements A { public void m1(int x) { } }
I have a doubt that why abstract class is able to override and class D can't
If I see the second case
class X1
{
public void f2(){}
}
class X2 extends X1
{**//No error**
public void f2(int x){}
}
why public void m1() is not getting overidden in class D whereas same type of method f2() is getting overriden in class X2 In both cases we are overidding but why in interface case class D cant and in second case class X2 can override.