Managed package : It is a collection of application components that are posted as a unit on AppExchange, and are associated with a namespace and a License Management Organization. It include locked components and also It can be upgraded.
Managed package in Salesforce can be described as collection of components in which code is hidden and can’t be edited. It can only be upgraded to newer version.
Managed package are mainly used for Salesforce partners to distribute and sell applications to customers.