If you are intrigued by the philosophical implications of the object concept, I suggest a course in object-oriented design. The article describes that Plato s theory encompassed not only physical objects like tables and rocks, but also abstract ideas like beauty and justice. In Java, a class can be defined as concrete , abstract , or final -concrete. A class has a name, which by convention starts with a capital letter. Concrete classes roughly correspond with Plato s physical objects like tables and rocks, because they can be instantiated .
Classes are concrete by default.
In other words, a class is assumed to be concrete unless it is designated otherwise. Abstract classes roughly correspond with Plato s abstract ideas of beauty and justice, because they cannot be instantiated. Abstract classes are designated by the keyword abstract . Abstract and concrete classes have the quality that they can be subclassed . A subclass of a given class, also known as a derived class , inherits all of the qualities of the parent class and specifies qualities that separate the subclass from the parent.