In answer to question 1, in
java we have abstract methods which is just method signature with no body. for example
abstract void doSomething(
String s);
An abstract method is implemented(I think that is correct term) in the class that extends the abstract class, or implements the interface containing the abstract method. It is there that the code to actually do something is.
hope that helps