1   package com.puppycrawl.tools.checkstyle.checks.coding.illegaltype;
2   
3   public class InputIllegalTypeAbstractClassNames {
4   
5       abstract class AbstractClass {
6           abstract String getClassInfo();
7           abstract boolean isPerfectClass();
8       }
9   
10      class MyNonAbstractClass extends AbstractClass {
11  
12          boolean perfect = true;
13  
14          private MyNonAbstractClass() {}
15  
16          @Override
17          String getClassInfo() {
18              return "This is my non abstract class.";
19          }
20  
21          @Override
22          boolean isPerfectClass() {
23              return perfect;
24          }
25      }
26  
27      AbstractClass a = new MyNonAbstractClass();
28  
29      public String getInnerClassInfo(AbstractClass clazz) {
30          return clazz.getClassInfo();
31      }
32  
33      public AbstractClass newInnerClassInstance() {
34          return new MyNonAbstractClass();
35      }
36  }