1. A class C1 derived from another class C2 is called a subclass(extended class or derived class), and C2 is called a superclass(parent class or base class). Private data fields and methods in a superclass are not accessible outside of the class. Therefore, they are not inherited in a subclass.
2. Keyword super (1) to call a superclass constructor (2) to call a superclass method The constructors of a superclass are not inherited in the subclass. They can only be invoked from the constructors of the subclasses, using the keyword super. In any case, constructing an instance of a class invokes the constructors of all the superclasses along the inheritance chain. This is called constructor chaining. If a class is designed to be extended, it is better to provide a no-arg constructor to avoid programming errors, since constructors of its subclass will defaultly invoke super()
3. Overriding method (not overloading) To override a method, the method must be defined in the subclasss using the same signature and return type as in its superclass. A private method cannot be overridden, because it's not accessible outside its own class. If a method defined in a subclass is private in its superclass, the two methods are completely unrelated. A static method can be inherited, but can't be overridden. If a static method defined in the superclass is redefined in a subclass, the method defined in the superclass is hidden.
4. The Object class Three frequently used methods: (1) public boolean equals(Object object) You should use equals(Object obj) to override the equals method in a subclass (2) public int hashCode() (3) public String toString()