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 — Java
An abstract class must implement all abstract methods defined in its superclassAbstractClassNoImplementation — Java
An abstract class cannot contain implemented methodsConcreteClassMustOverride — Java
A concrete class needs to implement all methods declared in its abstract superclassesConcreteClassOnlyImplementClassAbstract — Java
A concrete class only needs to implement those abstract methods it inherits from abstract superclassesConcreteClassOnlyImplementDirectAbstract — Java
A concrete class only needs to implement abstract methods declared in its direct supertypesConcreteClassOnlyImplementInterfaceAbstract — Java
A concrete class only needs to implement those abstract methods it inherits from interfacesImplicitInterfaceImplementation — Java
Java implicitly produces implementations of any methods a class inherits from the interfaces it implementsInterfaceExtendClass — Java
An interface can extend a classNoMethodInheritance — Java
Subclasses inherit fields but not methodsPrivateAccessibleInSubclass — Java
Private members of a superclass are accessible from a subclassStaticDispatch — Java
The method to be called is determined by the static typeSubtypeCompatibleWithSupertype — Java
A variable of a subtype can reference an object of a supertypeSuperAlwaysHasParentheses — Java
To call a method on a superclass, parentheses are needed after the keyword superSuperNotFirstStatement — Java
super() can be called anywhere in the constructor of a subclassSuperclassObjectAllocated — Java
When instantiating an object of a subclass, an object of a superclass is also allocatedSupertypeIncompatibleWithSubtype — Java
A variable of a supertype cannot reference an object of a subtype