Llamando a un constructor de clase superior en Scala

Requisito previo: constructores de Scala
En Scala, los constructores se utilizan para inicializar el estado de un objeto y se ejecutan en el momento de la creación del objeto. Hay un solo constructor primario y todos los demás constructores deben finalmente enstringrse a él. Cuando definimos una subclase en Scala, controlamos el constructor de la superclase que llama su constructor principal cuando definimos la parte extendida de la declaración de la subclase. 
 

  • Con un constructor: un ejemplo de cómo llamar a un constructor de 
    superclase Ejemplo: 
     

Scala

// Scala program to illustrate
// calling a super class constructor
 
// Primary constructor
class GFG (var message: String)
{
    println(message)
}
 
 
// Calling the super class constructor
class Subclass (message: String) extends GFG (message)
{
    def display()
    {
        println("Subclass constructor called")
    }
}
 
// Creating object
object Main
{
    // Main method
    def main(args: Array[String])
    {
         
        // Creating object of Subclass
        var obj = new Subclass("Geeksforgeeks");
        obj.display();
    }
}
  •  
Producción: 

Geeksforgeeks
Subclass constructor called

 

  • En el ejemplo anterior, la subclase se define para llamar al constructor principal de la clase GFG , que es un constructor de un solo argumento que toma el mensaje como su parámetro. Al definir una subclase en Scala, se controla el constructor de la superclase que llama el constructor principal de la subclase al definir el segmento extendido de la declaración de la subclase.
  • Con múltiples constructores: en el caso de que la Superclase tenga múltiples constructores, se puede llamar a cualquiera de esos constructores utilizando el constructor principal de la Subclase. Por ejemplo, en el siguiente código, el constructor principal de la subclase llama al constructor de argumentos dobles de la superclase mediante la cláusula extends definiendo el constructor específico.
    Ejemplo: 
     

Scala

// Scala program to illustrate
// calling a specific super class constructor
 
// Primary constructor (1)
class GFG (var message: String, var num: Int)
{
     
    println(message+num)
     
    // Auxiliary constructor (2)
    def this (message: String)
    {
        this(message, 0)
         
    }
     
}
 
// Calling the super class constructor with 2 arguments
class Subclass (message: String) extends GFG (message, 3000)
{
    def display()
    {
        println("Subclass constructor called")
    }
}
 
// Creating object
object GFG
{
    // Main method
    def main(args: Array[String])
    {
         
        // Creating object of Subclass
        var obj = new Subclass("Article count ");
        obj.display();
    }
}
  •  
Producción: 

Article count 3000
Subclass constructor called

 

  •  
  • Podemos llamar al constructor de un solo argumento aquí. Por defecto, otro valor de argumento será 0. 
    Ejemplo: 
     

Scala

// Scala program to illustrate
// calling a specific super class constructor
 
// Primary constructor (1)
class GFG (var message: String, var num: Int)
{
     
    println(message + num)
     
    // Auxiliary constructor (2)
    def this (message: String)
    {
        this(message, 0)
         
    }
     
}
 
 
// Calling the superclass constructor with 1 arguments
class Subclass (message: String) extends GFG (message)
{
    def display()
    {
        println("Subclass constructor called")
    }
}
 
// Creating object
object GFG
{
    // Main method
    def main(args: Array[String])
    {
         
        // Creating object of Subclass
        var obj = new Subclass("Article Count ");
        obj.display();
    }
}
  •  
Producción: 

Article Count 0
Subclass constructor called

 

Publicación traducida automáticamente

Artículo escrito por vishodushaozae y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *