Thanks AlanR and Plinkie;
the moves the knight has depend on location, armor, wounds, how far he moved already etc. So it needs to be a function about stuff that pertains to a knight.
The mobil family is associated with the user interface and I want to highlight how far a piece can go. I should be able to write all the code for the mobil family without knowing anything about what a knight does or how it calculates the moves etc. When I make something a member of the mobil family it gets all the user interface stuff so long as knight can provide what the mobil family expects of a family member (like being able to tell me how far it can move, whose side it is on, is certain terrain forbidden etc).
Unfortunately it seems like the mobil family has to know about the kight since it has to get to the moves function somehow for the knight (or rogue or something I haven't thought of the user may need to move). In other languages I can do this since I just have to write a getMoves routine and then override it if the mobil happens to be a knight--but I don't need to know beforehand that I have a knight when I write the mobil code.
I appreciate your comments and your time.