JavaOOPИзползване на парадигмата обектно-ориентирано програмиранеКапсулация на даннитеИзползване на ReflectionПрилагане на принципите от обектно-ориентираното програмиранеСъздаване на йерархия от класове и наследяванеКомпонентно тестване