Inheritance
The inheritance relation is (unexpectedly?) powerful; it is built into all fully object-oriented languages.
In Java, if some class A has been defined, we can subsequently declare a new class, B, and specify that it extends A.
Class A is called the superclass of B. Class B is a subclass of A.
The class B is automatically given (inherits) all the fields and method definitions of A. Further fields and methods can be added that are specific to B.
In particular, for every method signature in class A, class B will have a method with identical signature.
Crucially, though, the class B may define a different the implementation for some of those methods.