Inheritance is the ability to use one class to
provide the basic or primary behavior for another class. Inheritance is
very important in C++ and all of the (commercial and non-commercial)
libraries rely on it for code efficiency. This is why this concept is
highly enforced in Managed C++.

Managed C++ supports inheritance at various levels,
one of which is through the __abstract
keyword.:

The Influence of Interfacing

In order to use inheritance, one class considered the
parent must have been created and made available to other classes. As done
with abstraction, sometimes you may want to create a class that would be
used only to provide a foundation for other classes. Such a class would
never be instantiated. Such a class is called an interface.

To create an interface class, you can use the
__interface keyword. It is important to note that this __interface concept
doesn't add any genuine functionality to the Managed C++ language. It only
enforces the notion of abstraction.

When creating an interface class, type the __interface
keyword on the left of the name of the class. An interface is created like
a class, except that it uses the __interface keyword. By (good) habit, it is usual
to start the name of an interface class with I to indicate the nature of
the class. Here is an example that creates an interface class:

Header File: quadrilateral.h

#pragma once

__interface IQuadrilateral
{
double Perimeter();
double Area();
};

As mentioned already, the keyword __interface
indicates that the class is abstract. Therefore, you don't have to specify
that its methods are virtual. However, if you want, you can
still type the virtual keyword to the left of the method.