I earlier learned that abstract class can extend concrete class. Though I don\'t see the reason for it from JAVA designers, but it is ok. I also learned that abstract class
If you make the test method abstract it forces anyone deriving from the Bar class provide an implementation of the method.
If you remove the abstract method from the Bar class then anyone deriving from Bar would not have to implement the test method as Foo already provides an (empty) implementation.