enum  
small, finite/fixed set
known at compile time
no need to extend
switch  
works on primitive type, enum, string
primitives  
boxed primitives(reference)
equality  
override equal()
override hashcode()
illegalException  
Extend
Throw
Catch
exceptional conditions  
throw exceptions
cat exceptions
static  
happens at compile time
belongs to a class
fields:one variable for the whole class rather than one per object
methods:associated with the class that doesnt depend on an instance
classes:helper class with strong association
Encapsulation private, protected, public
Polymorphism
Assigning behavior or value in a subclass to something that was
already declared in the main class
@overload
same name & differnt argument type | different return types
@override
same name & same argument & same return type
Interface  
has only method declarations
Abstract class  
abstract method : only abstract methods
implemented or overrided in subclass
show