Search code examples
javaclassabstractextend

Using Sub Abstract Class in Java


I Have this class:

public abstract class Test {
    public abstract class SubClass extends Test
    {

    }
}

I need to access it like this

public class JavaApplication1 extends Test.SubClass {

     public JavaApplication1()
     {
         super();
     }
}

But having problem with super. I Cant use it static nor extend Test What should I do? Thanks in advance


Solution

  • One solution: make SubClass a static inner class.

    Another possible solution:

    public class JavaApplication1 extends Test.SubClass {
    
       public JavaApplication1() {
          new Test() {}.super();
       }
    
       public static void main(String[] args) {
          new JavaApplication1();
       }
    }
    
    abstract class Test {
       public Test() {
          System.out.println("from Test");
       }
    
       public abstract class SubClass extends Test {
          public SubClass() {
             System.out.println("from SubClass");
          }
       }
    }
    

    Which returns:

    from Test
    from Test
    from SubClass