Inheritance and upcasting. : Inheritance « Class Definition « Java Tutorial

class A {
  public void play() {

  static void tune(A i) {;

// Wind objects are instruments
// because they have the same interface:
class B extends A {

public class MainClass {
  public static void main(String[] args) {
    B flute = new B();
    A.tune(flute); // Upcasting


5.22.3.Method Overriding
5.22.4.The extends Keyword
5.22.5.Deriving a Class
5.22.6.The keyword super represents an instance of the direct superclass of the current object.
5.22.7.Derived Class Constructors: Calling the Base Class Constructor
5.22.8.Overriding a Base Class Method
5.22.9.Type Casting
5.22.10.Inheritance, constructors and arguments
5.22.11.Combining composition and inheritance
5.22.12.Inheritance and upcasting.
5.22.13.Overloading a base-class method name in a derived class does not hide the base-class versions.
5.22.14.Cleanup and inheritance
5.22.15.Creating a Multilevel Hierarchy
5.22.16.Demonstrate when constructors are called in a Multilevel Hierarchy