All classes form an inverted tree with the Object
class at the
root. Final classes appear only as leaves.
Abstract classes generally lie high in the tree, because they generally declare instance variables and declare or define instance methods that you intend to share among multiple subclasses.
No class can be both abstract and final.