abstract class | can have concrete methods or instance variables |  |
cannot have instances |  |
has definition A class that cannot have any instances |  |
has purpose to hold features that will be inherited by two or more subclasses |  |
has part abstract method |  |
is a subtopic of The Basics of Java |  |
is a kind of class |  |
class | contains all of the code that relates to its objects including - code describing how the objects of the class are structured - i.e. the data stored in each object that implement the properties
- The procedures, called methods, that implement the behaviour of the objects
|  |
contains data associated with each object |  |
declares a list of variables, called instance variables, corresponding to data that will be present in each instance |  |
is an abstract representation of all the instances of that class that may ever exist |  |
is probably useless if it has no responsibilities attached to it |  |
is the unit of data abstraction in an object-oriented program |  |
is divided up into methods |  |
is drawn as a box with the name of the class inside in a UML class diagram |  |
is needed in a domain model if you have to store or manipulate instances of it in order to implement a requirement |  |
represents several similar objects |  |
see also class^2 |  |
should be created to hold a responsibility if the responsibility cannot be attributed to any of the existing classes |  |
should be named after things their instances represent in the real world |  |
should not be named after the internals of a computer system such as 'Record', 'Table', 'Data', 'Structure', or 'Information' |  |
data abstraction | groups the pieces of data that describe some entity, so that programmers can manipulate that data as a unit |  |
helps a programmer to cope with the complexity of data |  |
hides the details of data |  |