Object type body defines code for object methods. Procedures and functions implementation details are encapsulated in the object body and they are hidden from code outside the object.
Sometimes object body is unnecessary.
You are not allowed to declare attributes in the body, so all items in the object type specification are public (visible outside the object type).
Like package procedures and functions, object type methods can be overloaded. You can create several methods with the same name but with the different parameter set within the object. When calling object subprogram, PL/SQL distinguishes the correct method by comparing actual parameters with the formal ones.