OOP terminology

Well, when an example designed to help clarify a situation breeds confusion, it is hard to conclude that it is anything but a bad example. Mea culpa.

But just to be argumentative, eye color might be genetically determined but there are many properties of a human (knowledge, skills, relationships) that are not.

In some sense, any class, even one with NO assigned properties have what in the English language might be called properties. The human class might be considered to have four limbs and two eyes even though there is no property that has been created to describe this. All instances of the class are assumed to be identical in this regard.

When a property is assigned by a programmer to a class it implies that there is a variation amongst the instances of a class in this regard. And there is no reason for the programmer to bother if that difference does not make any difference in how the program works.

Eye color might not have any significance in how the program works so I can dismiss it. But I think that Tim and Norman are making a valid point of sorts. Until properties get assigned (if they do at all) classes are IDENTICAL and humans are not. I can argue that my program is not interested in eye color so bringing it up is just to throw dust in the air. But my analogy does fail to capture the fact instances of a class are strictly IDENTICAL if that class does not define any properties or if the two instances have the same values of whatever properties are defined. Humans are not identical.

But, in my example, I was implying that humanDNA is identical. Like it was cloned humanDNA. Like when someone uses the example of a blueprint as defining a class we understand that it is the same blueprint. My implicit assumption was that it was the same humanDNA.

But anyway it threw some people off track