学习scala笔记--11 trait基础

 

 

 

scala  trait基础

 

 

scala  Trait-- 作为接口使用

可以 继承多个 trait

 

scala> :paste

// Entering paste mode (ctrl-D to finish)

 

trait Hello1 {

 def sayHello1

}

 

trait Hello2 {

def sayHello2 

}

 

trait Hello3 {

 def sayHello3 

}

 

class Hello extends Hello1 with Hello2 with Hello3 {

 def sayHello1 { println(" hello1")}

 def sayHello2 {println("hello2")}

 def sayHello3 {println(" hello3")}

}

 

// Exiting paste mode, now interpreting.

 

defined trait Hello1

defined trait Hello2

defined trait Hello3

defined class Hello

 

scala> val h = new Hello

h: Hello = Hello@3d26e7ba

 

scala> h.sayHello1

 hello1

 

scala> h.sayHello2

hello2

 

scala> h.sayHello3

 hello3

 

 

----------------------------------

 

 

trait 中定义具体方法

 

 

scala> trait helloTrait {

     | def sayHello { println(" print helloTraint ")}}

defined trait helloTrait

 

scala> 

 

scala> 

 

scala> class Hello extends helloTrait 

defined class Hello

 

scala> val h = new Hello

h: Hello = Hello@2358a9f9

 

scala> h.sayHello

 print helloTraint 

 

 

 

 

 ----------------------------------

 

 

trait 中定义具体的 字段

 

 

scala> trait Hello1 {

     | val name="---hello1---"}

defined trait Hello1

 

scala> 

 

scala> class Hello extends Hello1

defined class Hello

 

scala> val h = new Hello

h: Hello = Hello@5074dd7

 

scala> h.name

res16: String = ---hello1---

 

 

 ----------------------------------

 

 trait 中定义抽象字段

 

 

scala> trait Hello1 {

     | 

     | val name:String

     | }

defined trait Hello1

 

scala> class Hello extends Hello1 

<console>:12: error: class Hello needs to be abstract, since value name in trait Hello1 of type String is not defined

       class Hello extends Hello1

             ^

 

scala> class Hello extends Hello1 {

     | val name="kkkkk"}

defined class Hello

 

scala> val h = new Heloo

<console>:11: error: not found: type Heloo

       val h = new Heloo

                   ^

 

scala> val h = new Hello

h: Hello = Hello@16d967e3

 

scala> h.name

res17: String = kkkkk

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值