An abstract class is a class that is not defined in the source code. Instead, it is defined in a file that contains a definition of the class. The file defines the class by defining all of the properties and methods of the class. However, the class does not have to be defined in the source code. Instead, it can be defined in a separate file that is included in the source code. The file can then be referenced by the source code. This allows the class to be abstract and still be defined in the source code. The main advantage of an abstract class is that it allows other classes to use the class without having to know all of its properties and methods. This makes it possible for other classes to use a class without knowing all of its properties and methods