Inheritance
Inheritance is a way to define a class by reusing the definition of another class.
Related concepts: ClassMemberSubtyping
Closest Wikipedia entry: Inheritance (object-oriented programming)
Misconceptions about Inheritance16 documented Misconceptions
Check YourselfAbstractClassMustImplementAbstractMethod
An abstract class must implement all abstract methods defined in its superclassAbstractClassNoImplementation
An abstract class cannot contain implemented methodsConcreteClassMustOverride
A concrete class needs to implement all methods declared in its abstract superclassesConcreteClassOnlyImplementClassAbstract
A concrete class only needs to implement those abstract methods it inherits from abstract superclassesConcreteClassOnlyImplementDirectAbstract
A concrete class only needs to implement abstract methods declared in its direct supertypesConcreteClassOnlyImplementInterfaceAbstract
A concrete class only needs to implement those abstract methods it inherits from interfacesImplicitInterfaceImplementation
Java implicitly produces implementations of any methods a class inherits from the interfaces it implementsInterfaceExtendClass
An interface can extend a classNoMethodInheritance
Subclasses inherit fields but not methodsPrivateAccessibleInSubclass
Private members of a superclass are accessible from a subclassStaticDispatch
The method to be called is determined by the static typeSubtypeCompatibleWithSupertype
A variable of a subtype can reference an object of a supertypeSuperAlwaysHasParentheses
To call a method on a superclass, parentheses are needed after the keyword superSuperNotFirstStatement
super() can be called anywhere in the constructor of a subclassSuperclassObjectAllocated
When instantiating an object of a subclass, an object of a superclass is also allocatedSupertypeIncompatibleWithSubtype
A variable of a supertype cannot reference an object of a subtype