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
- 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
- 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
- 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