Public Inheritance in C++
Public inheritance creates a class hierarchy in which a derived class object is in the form of an abstract base class object.
This is called "IS-A" inheritance; it is also referred to as interface inheritance.
There exists an "IS-A" relationship between a class and the interface that it implements.
interface Maintainable{
abstract void clean();
}
public class House implements Maintainable{
static int counter = 0;
public void clean() {
counter++;
System.out.println("Cleaning House: counter = " + counter);
}
public static void main(String[] args) {
House h1 = new House();
h1.clean();
Maintainable m1 = new House();
m1.clean();
boolean state = m1 instanceof House;
System.out.println("state = " + state);
}
}
/*
Program output
Cleaning House: counter = 1
Cleaning House: counter = 2
state = true
*/
instanceof operator
The instanceof operator says that m1 of type 'Maintainable' is a 'House' because the value of the variable state is true.
Class hierarchies should be about interface inheritance. In the classic example, a parent class Shape describes the properties and behaviors of all shape types using virtual and pure virtual member functions.
The derived classes like circle implement the specifics. The Circle is a Shape.