I just start out with an example, that explains it best:
public abstract class A{ static String str; } public class B extends A{ public B(){
I think one way to approach this is to use a singleton for class B and C to mimic static methods and fields. The can both extend abstract class A, but will have their own values of str..
B
C
A
str