The interface is implemented using an abstract class in C++, hence the word interface and abstract class are used interchangeably.
Abstraction classes are the way to achieve abstraction and abstraction is a technique in programming to hide the internal details and only show the necessary functionalities.
The classes with at least one pure virtual function are said to be abstract classes. A pure virtual function is has a signature as “0” and of course with a
virtual keyword itself as shown below.
virtual void fun() = 0;
And the above function can be called an abstract function as it has no body. The purpose of an abstract class is to serve as an interface and provide a base class from which other classes can inherit. Also, the instance of an abstract class cannot be created.
Let us understand through an example in C++ for abstract classes.
C++ Abstract class example
In the program below, we have three classes Animal (parent class), Cat, and Dog (derived class). The sound() function for each animal (dog and cat) is different but they have the same function name, so the function sound() is made pure virtual function in the parent class, Animal.
using namespace std;
//Pure Virtual Function
virtual void sound() = 0;
//Parent member Function
cout << "Animals eat.";
//Cat class inherits Animal
class Cat: public Animal
cout << "Meow" << endl;
//Dog class inherits Animal
class Dog: public Animal
cout << "Woof" << endl;