CPFunctionalTests.java:34: is not abstract and does not override abstract method preference(java.lang.Object) in CPPref i'm defining the preference method as public abstract boolean preference(E states); and the class is defined as public abstract class CPPref { so if i take out the abstract part and implement the method then it works. and i imagine if i take out the then it will work too. but for some reason that i can't see, it doesn't like what i have.