package com.puppycrawl.tools.checkstyle.checks.coding.illegaltype; public class InputIllegalTypeAbstractClassNames { abstract class AbstractClass { abstract String getClassInfo(); abstract boolean isPerfectClass(); } class MyNonAbstractClass extends AbstractClass { boolean perfect = true; private MyNonAbstractClass() {} @Override String getClassInfo() { return "This is my non abstract class."; } @Override boolean isPerfectClass() { return perfect; } } AbstractClass a = new MyNonAbstractClass(); public String getInnerClassInfo(AbstractClass clazz) { return clazz.getClassInfo(); } public AbstractClass newInnerClassInstance() { return new MyNonAbstractClass(); } }