public interface Bsuper { abstract class A { abstract void test1(); void test2() { System.out.print("test2 "); } } } // second file public class Bsub extends Bsuper.A { void test1() { System.out.print("test1 "); } } // third file public class Bsubmain { public static void main(String args[]) { Bsub sub1 = new Bsub(); Bsuper.A obj = new Bsub(); sub1.test1(); sub1.test2(); obj.test1(); obj.test2(); } } It produces the output as expected test1 test2 test1 test2, but my question is in the Bsuper class, class A is static we all know that and now with the abstract keyword it becomes abstract class, but how is it possible to have both abstract and static applied to class at the same time.Is class A really static also or is there any other explanation for it.Please answer!!
Ais supposed to be static.static.