#Kata Self-type traits en Scala.

En este post te voy a explicar que es un self type trait y como puedes usarlo en Scala.

¿Qué es un self-type trait en Scala?

Un self-type trait es una manera de declarar que un trait debe ser mezclado con otro trait y así se puedan acceder a sus miembros directamente. Para definir un miembro como self type necesitas especificarlo dentro del trait que tiene que acceder a los miembros de otro trait. La clase que herede del trait con self-type tendrá que heredar de los dos trait o de lo contrario tendrás un error de compilación.

 

trait User{
protected var _username:String
}
trait ExtendedUserInfo {
//Specifying the self-type here
this: User =>
protected var _email:String
protected var _address :String
//We are using _username attribute from User trait
def showUserInfo() ={
println(s"User=${_username}, Email=${_email}, Address=${_address}")
}
}
class ExtendedUser(username:String, email:String, address:String)
//The subclass must inherit from ExtendedUserInfo and Info
extends ExtendedUserInfo with User {
override protected var _username: String = username
override protected var _email:String = email
override protected var _address: String = address
}
var currentUser = new ExtendedUser("admin", "admin@site.com", "address")
currentUser.showUserInfo()

Gustavo Sánchez

Soy especialista en escribir software de calidad. Mediante el uso de marcos de trabajo, técnicas y automatización de procesos he podido reducir los costes operativos de los sistemas de la empresa. Sistemas confiables y adaptables producen clientes felices.

Site Footer