Why do we need Abstract Class? It is to represent a category, or a group of real thing.
Here in lecture on Platon’s Allegory of Cave, the lecturer explains about the meaning of “Dog”, which exists in the world of IDEA, very well.
But do we need the concept of “Dog” in programming language?
Actually, even without the concept of Abstract Class, we can use a root class like abstract class. So, I think abstract class is kind of syntactic sugar. However, with abstract class, it will be possible to save some memory space because it is not really instantiated.
Almost all computer languages are based on English, other than assembly languages. Any human-readable computer language is based on philosophy based on western people’s idea.
Then, how will computer languages look like if they are made by asians, africans and so on?
Don’t we think that we are too used to logics and philosophy driven by western people who have their base on western culture?
ADDED : Strictly speaking, the “Dog” doesn’t need to be Abstract Class. Class is also just a template to build an instance which actually exists. Abstract Class can be thought as a conceptual thing to a class.