Escala | Final – Part 1

En Scala, Final es una palabra clave y se usa para imponer restricciones a la superclase o clase principal de varias maneras. Podemos usar la palabra clave final junto con variables, métodos y clases.
Las siguientes son las formas de usar la palabra clave final en Scala

  1. Variable final de
    escala: variable final de escala inicializada solo una vez mientras se declara y se usa como constante en todo el programa. En el siguiente ejemplo, el área variable es final, que se declara como final y también se inicializa mientras se declara en formas de superclase . si queremos acceder o modificar el área variable de la clase derivada Rectángulo, entonces no es posible porque la restricción en el área variable se agrega con la palabra clave final.

    Variable final de Scala inicializada de las siguientes maneras:

    • mientras declaraba
    • En bloque estático
    • En Constructor

    Scala

    // Scala program of using final variable
    class Shapes
        // define final variable
        final val area:Int = 60
    class Rectangle extends Shapes
        override val area:Int = 100
        def display()
        
            println(area) 
        
      
    // Creating object
    object GFG
        // Main method
        def main(args:Array[String])
        
            var b = new Rectangle() 
            b.display() 
        
    }

    Se produce el siguiente error al ejecutar el código anterior

    Producción :

     
    prog.scala:5: error: overriding value area in class Shapes of type Int;
     value area cannot override final member
    override val area:Int = 100
                 ^
    one error found
    
  2. Métodos finales de Scala: el
    método final CalArea en la clase principal (Formas) indica que el método no puede anularse en una clase secundaria (Rectángulo).

    Scala

    // Scala program of using final method
    class Shapes
        val height:Int = 0
        val width :Int =0
          
        // Define final method
        final def CalArea(){ 
        }
    class Rectangle extends Shapes
        override def CalArea()
        
            val area:Int = height * width 
            println(area) 
        
      
    // Creating object
    object GFG
        // Main method
        def main(args:Array[String])
        
            var b = new Rectangle() 
            b.CalArea() 
        
    }

    Se produce el siguiente error al ejecutar el código anterior

    Producción :

    prog.scala:8: error: overriding method CalArea in class Shapes of type()Unit;
     method CalArea cannot override final member
        override def CalArea(){
                         ^
    one error found
    
  3. Clases finales de Scala
    Si la clase en Scala es final, entonces no puede heredar a la clase derivada. La restricción de herencia se agregará por palabra clave final. Aquí, si las Formas de clase son finales, todos sus miembros también son finales y no se pueden usar en clases derivadas.

    Scala

    // Scala program of using final class
    final class Shapes
        // Final variables and functions
        val height:Int = 0
        val width :Int =0
        final def CalArea()
        
        }
    class Rectangle extends Shapes
        // Cannot inherit Shapes class 
         override def CalArea()
         
            val area:Int = height * width 
            println(area) 
        
      
    // Creating Object
    object GFG
        // Main method
        def main(args:Array[String])
        
            var b = new Rectangle() 
            b.CalArea() 
              
        
    }

    Se produce el siguiente error al ejecutar el código anterior

    Producción :

     
    prog.scala:4: error: illegal inheritance from final class Shapes
    class Rectangle extends Shapes{
                            ^
    one error found
    

Publicación traducida automáticamente

Artículo escrito por HbhushanMahajan 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 *