¿Qué es la clase abstracta en Scala??
En Scala, una clase abstracta sirve como un supertipo que contiene información sobre las clases de subtipo. Para lograr la abstracción, se crea la clase abstracta. Abstracción significa ocultar la información de la implementación y mostrar solo la funcionalidad específica para los usuarios finales. Solo podemos heredar un resumen de una clase para instanciar correctamente. Una clase abstracta no se puede instanciar directamente. Para construir una clase abstracta, tenemos que representar una clase con el resumen de la palabra clave.
Sintaxis de la clase abstracta en Scala
La sintaxis de la clase de resumen de Scala se ve de esta manera.
Clase de clase abstracta_name
def abstract_method ()
El resumen está representado con la palabra clave "Resumen" con el nombre de la clase. En clase abstracta, hemos declarado métodos abstractos. El método abstracto es sin tener código en su cuerpo.
Cómo usar la clase abstracta en Scala en Ubuntu 20.04
Tomemos un ejemplo y ver cómo formar una clase abstracta junto con un método abstracto en Scala.
Ejemplo # 1: Crear una clase abstracta en Scala
Podemos crear una clase abstracta en un programa utilizando la palabra clave "abstracta" con el nombre de clase especificado. Hagamos algo de creación práctica de la clase abstracta.
En el código anterior, hemos declarado una clase con la palabra clave "resumen" y nombrado esa clase como "estudiante". En la clase abstracta, hemos definido los métodos abstractos como "información". Cuando definimos un método abstracto en una clase abstracta, entonces no necesitamos ninguna implementación allí. Después de crear la clase abstracta, hemos creado una clase regular llamada "Grado". Este "grado" de clase extiende la clase abstracta. Aquí, el método abstracto "información" muestra el nombre del estudiante y el nombre de grado. Luego, tenemos un método principal en el que tenemos que definir el objeto de clase de "grado". Hemos creado una variable OBJ y lo asignamos a la instancia de la clase de "grado". Hemos usado una nueva palabra clave para instanciar la clase. Estamos utilizando la instancia de OBJ con el método de "información" llamado.
Hemos creado con éxito una clase abstracta y métodos abstractos definidos en una clase regular. La salida del método abstracto de la clase abstracta a través de la instrucción de impresión está en la pantalla del terminal.
Ejemplo # 2: Creación de una instancia de clase abstracta en Scala
En Scala, no podemos instanciar una clase abstracta explícitamente. Si intentamos hacerlo, tendremos un error de compilación. A continuación, estamos tratando de instanciar una clase abstracta creando una instancia del resumen para saber qué mensaje de error dará.
En la implementación del código anterior, hemos creado una clase abstracta con la palabra clave "abstracta" y dado el nombre de la clase como "universidad". Entonces, sin un cuerpo, hemos definido el método abstracto. El método abstracto se emplea en el método principal. Creamos un objeto de la clase "Universidad" en la función principal de la clase abstracta. Luego, hemos asignado ese objeto a la instancia de la clase abstracta "Universidad" con la nueva palabra clave. Esto instanciará la clase abstracta.
Tenemos un mensaje de error como salida que no podemos instanciar la clase abstracta. Como resultado, no podemos generar objetos de clases abstractas.
Ejemplo # 3: Creación de campos en clase abstracta en Scala
También podemos definir campos en clase abstracta. La clase abstracta accedió a estos campos y luego, el método abstracto de la clase heredó la clase abstracta. A continuación se muestra la implementación del código que se muestra.
En el código anterior, hemos creado una clase abstracta con la palabra clave "Resumen" y llamado esa clase "Maestros". En la clase abstracta, los campos contienen una variable como "maestro_name" que se inicializa con el valor de la cadena y tiene una cadena de tipo de datos establecida. El segundo campo también está con la variable definida como "maestro_subject", que también se establece como un tipo de datos de cadena y se inicializa con el valor de cadena. Aquí, el "maestro_detail" es un método abstracto de la clase abstracta "maestros". Ahora, "CS" se declara como una clase que extiende la clase abstracta. En esta clase, estamos accediendo al método de clase abstracta y a los campos de la clase abstracta llamando al método abstracto. Creamos un objeto para instanciar la clase. Luego, estamos utilizando una instancia de OBJ con el método de clase de "CS".
Tenemos el nombre del maestro y los detalles del maestro como una salida a continuación.
Ejemplo # 4: Crear un constructor en Scala
Podemos hacer un constructor de clase abstracta en el código. Podemos usar el constructor para inicializar un objeto, pero el objeto no se puede construir allí. Cuando creamos una instancia de una clase heredada, podemos llamar a un constructor de una clase abstracta.
En el código anterior, hemos declarado una clase abstracta como "libro" junto con el constructor. El constructor de una clase abstracta toma dos argumentos como "título" y "autor", entonces, en la clase abstracta, hemos definido detalles del método abstracto. Ahora, extienda la clase abstracta con la clase "novela". La clase "novedosa" accederá al método abstracto y devolverá los valores del constructor.
Conclusión
Como hemos discutido la importancia de la clase abstracta, es muy útil en Scala. Tenemos una breve introducción y definición de una clase abstracta en Scala. Además, hemos pasado por las diferentes implementaciones de código de ejemplo. Tuvimos una discusión profunda sobre la clase abstracta en Scala. Tendrá un fuerte control sobre la clase abstracta en Scala después de leer el artículo.