Finding the functional method didn't always succees when there was more than 1 abstract method in the class hierarchy.
diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractTypeDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractTypeDeclaration.java
index d3d1139..6115332 100644
--- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractTypeDeclaration.java
+++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractTypeDeclaration.java
@@ -54,15 +54,16 @@
 
         for (ResolvedReferenceType ancestor : getAllAncestors()) {
             List<Pair<ResolvedTypeParameterDeclaration, ResolvedType>> typeParametersMap = ancestor.getTypeParametersMap();
-            for (MethodUsage ancestorMethodUsage : ancestor.getDeclaredMethods()) {
-                MethodUsage methodUsage = ancestorMethodUsage;
+            for (MethodUsage mu : ancestor.getDeclaredMethods()) {
+                // replace type parameters to be able to filter away overridden generified methods
+                MethodUsage methodUsage = mu;
                 for (Pair<ResolvedTypeParameterDeclaration, ResolvedType> p : typeParametersMap) {
                     methodUsage = methodUsage.replaceTypeParameter(p.a, p.b);
                 }
                 String signature = getSignature(methodUsage);
                 if (!methodsSignatures.contains(signature)) {
                     methodsSignatures.add(signature);
-                    methods.add(ancestorMethodUsage);
+                    methods.add(mu);
                 }
             }
         }