We are using javassist to build hundreeds of classes in the following way :
abstract class A {
protected int getValue(){
}
}
abstract class ANumerique extends A {
protected abstract int evaluer();
}
class B1 extends ANumerique {
protected int evaluer(){
return getValue();
}
}