Many of the standard Java classes are declared to be final. Java also allows inner classes . An inner class is defined within another class. Such classes are often used as helper classes, defining objects that are not used outside of local use. For instance, we might define an inner class called Node to be used within a LinkedList class.
Inner classes can have more kinds of modifiers than standard classes.
File Names versus Class Names Java is tied into the file system more intimately than most programming languages. For instance, the code for a public class named MyClass must reside in a file called MyClass.java. Java packages are also closely tied into the file system. Interfaces A Java interface allows a kind of pseudo-class to be created. Code can be written in terms of the interface with the interface's name being used within declarations in the same way that a class name can be used.