Saltar al contenido

¿Golang es un lenguaje orientado a objetos?

07/04/2021

El crecimiento que ha tenido Golang hasta el día de hoy ha sido exponencial, convirtiéndose así en el lenguaje predilecto por los programadores.

Por eso, es normal ver que programadores de otros lenguajes quieran aprender Golang. Pero hay que tener en cuenta que la orientación a objetos en estos, aunque en Golang algunas cosas parezcan familiares, hay cosas que se realizan de forma distinta.

Pero primero debemos definir si Golang es un lenguaje orientado a objetos. Y como dicen sus creadores sí y no.

Para saber esto explicaremos los cuatro pilares de la programación orientada a objetos y como estos se implementan en Golang. Estos pilares son la abstracción, el encapsulamiento, la herencia y el polimorfismo.

¿Cómo se implementan estos pilares en Golang?

El primero es la abstracción, esta nos permite plasmar esos atributos o acciones que definen al objeto. En otros lenguajes como Java se usan las clases, allí plasman esas características en atributos y esas acciones en métodos.

En Golang no se tiene clases, pero se usan estructuras.En ellas se ponen esas características a través de los campos de las estructuras y las acciones a través de los métodos.

Cabe destacar, que Golang tiene algo que ningún otro lenguaje y es que los métodos no son exclusivos de las estructuras. Es decir, puedes emplear métodos a cualquier objeto definido.

El segundo es el encapsulamiento, es la característica que provee un lenguaje para  proteger los métodos del usuario que está trabajando. Esto en las clases se hace con modificadores de acceso.

En Golang no se tiene modificadores, pero tiene los identificadores exportados y no exportados.Aquí toca especificar que se exportará y que no, para qué el usuario sepa que puede usar.

El tercero es la herencia, este se refiere a las clases que permite reutilizar el código. En Golang no se tiene esta jerarquización de tipos. Pero se pueden implementar integrando con otros tipos.

El cuarto es el polimorfismo, cuya característica es la de mandar mensaje sintácticamente igual para que objetos de diferentes tipos puedan responder. Esto en Golang se hace a través del uso de interfaces.

En resumen, se podría decir que al cumplir con estos pilares Golang es un lenguaje orientado a objetos, aunque no de la forma que se acostumbra.