Summary
A derived class is obtained from a base class by adding addition instance variables and/or additional methods. The derived class inherits all the instance variables and methods that are in the base class.
When defining a constructor for a derived class, the first thing that happens is a call to the constructor for the base class. If you do not make an explicit call, then Java will call the default constructor of the base class.
You can redefine a method from a base class so that it has a different definition in the derived class. This is called overriding the method definition.
When you override a method definition, the new method definition given in the derived class has the exact same number and types of parameters. If the method in the derived class has a different number of parameters or a parameter position of a different type from the method in the base class, it is overloading.
Private instance variables and private methods of a base class cannot be accessed directly in a derived class.
If A is a derived class of class B, then an object of class A is a member of class A (of course), but it is also a member of class B.
Polymorphism means using the process of dynamic binding to allow different objects to use different method actions for the same method name.