Abstract classes serve an useful purpose by being able to create a class that embodies a concept rather than something concrete. E.g, Animal can be a class, but no one just an animal, it is either a Bird, Dog, or Cat etc which are different kinds of animals. Hope this helps. It also goes in conjunction with concepts like inheritance and polymorphism.