The getSuperClass() approach would fail for E since its immediate superclass is not A, but B. Rather use Class#isAssignableFrom().
public void myFunc(Class cls){
//need to check that cls is a class which extends A
//i.e. B, C and E but not A or D
if (cls != A.class && A.class.isAssignableFrom(cls)) {
// ...
}
}