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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #include <iostream> using namespace std; class Animal { public: //Pure Virtual Function virtual void sound() = 0; //Parent member Function void eat() { cout << "Animals eat."; } }; //Cat class inherits Animal class Cat: public Animal { public: void sound() { cout << "Meow" << endl; } }; //Dog class inherits Animal class Dog: public Animal { public: void sound() { cout << "Woof" << endl; } }; //main function int main() { Dog d; Cat c; d.sound(); c.sound(); d.eat(); return 0; } |
Output:
Woof
Meow
Animals eat.