Scala Trait(二)

/**
  * trait中定义具体方法和具体的字段
  */
trait TraitDemo02 {
  //具体字段(非抽象字段)
  //使用var修饰的非抽象字段,不能被重写
  var name: String = "李四"
  //使用val修饰的非抽象字段,可以被重写
  val age = 20

  //抽象字段,不管是使用var或val修饰的抽象字段,都可以被重写
  val sex: String

  def say: Unit = {
    println("hello world!")
  }
}

class ClassFurther {
  var name2 = "王五"
}

//如果是继承Class获取的field,实际是定义在父类中的;而继承trait获取的field就直接被添加到了类中
class ClassTest extends ClassFurther with TraitDemo02 {
  override val sex: String = "男"
}

object TraitDemo02Test {
  def main(args: Array[String]): Unit = {
    val ct = new ClassTest
    println(ct.sex)
    ct.say
    println(s"${ct.name},${ct.name2},${ct.age}")
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值