You're right! I just compiled that code and got "ocpjp". NetBeans does warn about it being pointless to mark a private method final....
I'm thinking that the private modifier hides the original method which means that class B can redefine it without overriding the original. Thanks for bringing this up. I know I learned something.
http://www.javaworld.com/javaworld/javaqa/2000-09/02-qa-0915-private.html
============================================================
I couldn't resist making a small change...
Exception in
thread "main" java.lang.StackOverflowError