Plato conceived the idea that each and every real physical object is an inferior representation of an idealised “Form”. Forms were supposed to be “more real” in some sense than the ordinary real world objects that the Form idealises. Wikipedia says this, in its article on the theory of Forms:
These Forms are the essences of various objects: they are that without which a thing would not be the kind of thing it is. For example, there are countless tables in the world but the Form of tableness is at the core; it is the essence of all of them.
There are several issues with this approach. For instance, when one looks at a table, one can count its legs. Many tables have four legs, while some may have more than four and some may have less than four. Some may rest on a pedestal and so have no legs at all.
So what is the essence of a table? It seems that there are many attributes of tables that are variable, like the number of legs, which is pretty shoddy for an ideal of an object. One could define a table by the uses to which it is put, but again the uses to which a table can be put are variable. We have writing tables, operating tables and pool tables. It seems that there is no attribute can be found which has a single value which makes a table a table.
For Plato the Form of a physical object is the richer of the the two. In the Analogy of the Cave, the real world objects were mere shadows of the Forms. However, it appears that the real world objects have to be richer than the ideals of the objects. This derives from the necessity of distinguishing one real object from another. This table here is different from that table there (in spacial location if in nothing else), and specific location is an attribute that the ideal cannot have.
Computer scientists have a solution to these issues, based around the concept of an “object”. An object is a container which may contain other objects, properties, or actions (called “methods” in the jargon) and which belongs to a class of objects. A table object for example may contain zero or several leg objects, it may contain the property of being wooden, and may contain the actions or methods of “lay”, “dine off”, “clear”, and so on.
Included objects can be considered parts of the object like the legs of the table. The properties are descriptive of the object, such as “wooden” or the property of “has four legs”. The actions or methods are things that you can do to the table, such as “dine off” it or “lay it for dinner”.
All objects belong to a class of objects and are called “instances” of the class. Each class is unique. There is only one class called “table” for example, and all table objects (instances of the class) derive or in other words are instantiated from it. A class is also a container and may bring properties and methods to the derived instance, so the table class may contain an action or method of “lay for dinner” and a property of “has four legs”.
So far so good. The Form equates to the class and the real world object to the instance object, so the computer science model aligns with Plato’s model. However the computer science model has a few more wrinkles which Plato’s model doesn’t.
Firstly, when the object is instantiated in the computer science model, the new object doesn’t have to incorporate the properties and actions or methods of the class that it is modelled on. For example, if the new table is used for writing letters, then it doesn’t need the action or method of “lay for dinner” so it can omit it. On the other hand it may benefit from a “clear space” action or method! It would probably carry over a “has four legs” property if the class supplies it. The instantiation process is very flexible! Class properties and actions or methods can be included in the instance or new properties and actions or methods can be created, if required.
Secondly, each and every object can implement one or more classes. This is a fancy way of saying that it can pick and choose properties and actions or methods from one or more classes. In other words a table object may be made of wood, hence, to use the jargon, it inherits from the class of “wooden objects” the action or method “polish”. We can polish a wooden object, and we can eat off a table object, so we can do both off a wooden table.
The point of all this is to address some of the deficiencies of Plato’s theory of Forms. Plato’s idea was that any table object derived from an archetypal table Form, which was not a real world object but still existed in some sense. The idealised Form was considered “purer” and was the essence of a table, comprising only those attributes shared by all tables. The difficulty here is finding any attributes that every table has, and which no “non-table” has. Using the extended Platonian scheme, if you extract all the properties and actions or methods that are not common to all tables, it seem that you might be left is an empty Form.
That may seem to be a disadvantage of this approach, but it is a strength. What sort of object do you get if you have an object which contains two box objects and a plank object? If you add the action or method of “eat off” you have a “dining table object” possibly with a property of “make-shift”.
So, under this extended Platonian scheme, what actually makes a table object a table object and not some other type of object? That’s actually a lot harder question than the question of what is a table object. Evidently it is a more subjective question as people will disagree what constitutes a table.