As usual, a class inherits the fields and methods of its parent class and of its interfaces, and can override the methods of its parent. Instance methods take the instance itself as an implicit parameter, which can be referred to via this . Abstract classes have specifications but no associated code. Class and member definitions have a variety of modifiers controlling things like access. Packages At the very top level, class definitions are organized into packages , each with a separate internal name space.
Packages consist of class and interface definitions, and possibly subpackages.
Package names are prepended to class or interface names to produce fully qualified names which are what appear in class files. Class Instances Class instances are essentially like records. Java doesn't have explicit pointers. Instances are created by calling a constructor. Instances are removed by an automatic garbage collector at some point after they cease to be referenced by the program.