In this section, we introduce some central concepts from object-oriented programming: abstract classes, subclasses, and inheritance. To guide you through these concepts, we consider another mathematical example: one-step methods for solving a differential equation.
The generic form of an ordinary initial value problem is as follows:

The data is the right-hand side function
, the initial value
, and the interval of interest
.
The solution to this problem is a function
. A numerical algorithm gives this solution as a vector
of discrete values
being approximations to
. Here,
and
are discretized values of the independent variable
, which in physical models often represents time.
A one-step method constructs the solution values
by the recursion steps:

Here,
is a step function that characterizes the individual methods, see also [28]:
-
Explicit Euler:
_ -
Midpoint rule:

-
Runge–Kutta 4:
with 
What we did here is the typical way of describing...