When designing a class hierarchy, which of the following should be true of a superclass?
A) A superclass should contain the data and functionality that are common to all subclasses that inherit from the superclass.
B) A superclass should be the largest, most complex class from which all other subclasses are derived.
C) A superclass should contain the data and functionality that are only required for the most complex class.
D) A superclass should have public data in order to provide access for the entire class hierarchy.
E) A superclass should contain the most specific details of the class hierarchy.