Según el índice Tiobe , Java es el lenguaje de programación 1 en el ranking número uno en el mundo en el momento de publicación de este artículo . Es ampliamente utilizado , potente y bastante fácil de aprender. Tiene un enorme ecosistema impulsado por una enorme cantidad de desarrolladores y una gran variedad de herramientas disponibles. Java es orientado a objetos y proporciona muchas herramientas orientadas a objetos de diferente tipo de problemas . Las clases abstractas e interfaces son dos herramientas importantes en la caja de herramientas de Java. Programación Orientada a Objetos
Programación Orientada a Objetos es el paradigma de programación dominante. En lugar de ver la programación como la creación de una lista de instrucciones para computadoras para ejecutar , programadores OOP crean miembros --- estos son llamados "objetos" --- de una sociedad digital que se orquestan para hacer lo que quieren. Esto se logra mediante el envío de mensajes a los objetos . Los objetos a continuación, responden a esos mensajes . Los programadores usan estos objetos y sus respuestas para crear software.
Clases
Clases
son una parte fundamental de la programación orientada a objetos. Programadores OOP definen los objetos que utilizan al crear clases y definir cómo esas clases de objetos se comportan . Las clases son un tipo especial de objeto cuyo trabajo es crear instancias de objetos con el comportamiento definido. Las clases pueden heredar de otras clases , o copiar su comportamiento.
Interfaces
interfaces son un tipo especial de clase. Interfaces de actuar como una plantilla para otras clases . Declaran los comportamientos que las clases que heredan deben definir. No obstante implementar cualquier comportamiento . El único propósito de una interfaz es definir qué comportamientos de una clase heredera debe exhibir . Las interfaces son útiles para la aplicación de una interfaz uniforme para objetos similares . Interfaces sólo pueden heredar de ; . No pueden ser usadas para crear objetos
clases abstractas
clases abstractas son similares a las interfaces , clases abstractas , sin embargo también se pueden poner en práctica el comportamiento de subclases . Las clases abstractas pueden utilizarse como interfaces en situaciones en las subclases tienen comportamientos comunes . Las clases abstractas son útiles en programas como los entornos de aplicaciones , donde los desarrolladores necesitan una funcionalidad por defecto de las subclases que definen. Las clases abstractas sólo pueden ser heredados de . No se puede utilizar para crear objetos.