cglib/src/main/java/net/sf/cglib/proxy/Enhancer.java
public void setSuperclass(Class superclass) {
        if (superclass != null && superclass.isInterface()) {
            setInterfaces(new Class[]{ superclass });
        } else if (superclass != null && superclass.equals(Object.class)) {
            // affects choice of ClassLoader
            this.superclass = null;
        } else {
            this.superclass = superclass;
        }
    }
public void setSuperclass(Class superclass) {
        if (superclass != null && superclass.isInterface()) {
            setInterfaces(new Class[]{ superclass });
        } else if (superclass != null && superclass.equals(Object.class)) {
            // affects choice of ClassLoader
            this.superclass = null;
        } else {
            this.superclass = superclass;
        }
    }
public void setSuperclass ( Class superclass ) { if ( superclass != null && superclass . isInterface ( ) ) { setInterfaces ( new Class [ ] { superclass } ) ; } else if ( superclass != null && superclass . equals ( Object . class ) ) { // affects choice of ClassLoader this . superclass = null ; } else { this . superclass = superclass ; } }
Set the class which the generated class will extend. As a convenience,
if the supplied superclass is actually an interface, <code>setInterfaces</code>
will be called with the appropriate argument instead.
A non-interface argument must not be declared as final, and must have an
accessible constructor.
@param superclass class to extend or interface to implement
@see #setInterfaces(Class[])
Set the class which the generated class will extend . As a convenience if the supplied superclass is actually an interface <code > setInterfaces< / code > will be called with the appropriate argument instead . A non - interface argument must not be declared as final and must have an accessible constructor .