class Dad { protected static String me = \"dad\"; public void printMe() { System.out.println(me); } } class Son extends Dad { protected
only by overriding printMe():
printMe()
class Son extends Dad { public void printMe() { System.out.println("son"); } }
the reference to me in the Dad.printMe method implicitly points to the static field Dad.me, so one way or another you're changing what printMe does in Son...
me
Dad.printMe
Dad.me
printMe
Son