I understand that all variables (i.e. data members) inside an interface are final and static. Going by this logic, the following program should throw an error, but works perfectly! Kindly clarify why?
interface inter1
{
int i=10;//i is final?
void dis();
}
interface inter2
{
int i=20; /* Reinitializing i again here. Compiler is expected to throw an error.*/
}
class face implements inter2,inter1
{
public void dis()
{
System.out.println("Interface 1 is called");
}
public static void main(
String ar[])
{
face ob=new face();
ob.dis();
System.out.println(inter1.i);
System.out.println(inter2.i);
}
}
------------------