scala 14 trait

DT大数据梦工厂scala的所有视频、PPT和代码在百度云盘的链接:http://pan.baidu.com/share/home?uk=4013289088#category/type=0&qq-pf-to=pcqq.group

《Scala深入浅出实战初级入门经典视频课程》http://edu.51cto.com/lesson/id-66538.html

《Scala深入浅出实战中级进阶经典视频课程》http://edu.51cto.com/lesson/id-67139.html
class UseTrait {

}

trait Logger{
// def log (msg : String)
def log (msg : String){}
}

class ConcreteLogger extends Logger with Cloneable{

// override def log(msg : String) = println("Log: " + msg)

def concreteLog{
log("It‘s me !!!")
}
}

trait TraitLogger extends Logger{
override def log (msg : String){
println(" TraitLogger Log content is : " + msg)
}
}

trait TraitLoggered{
def loged (msg : String){
println("TraitLoggered Log content is : " + msg)
}
}

trait ConsoleLogger extends TraitLogger{
override def log(msg : String){
println("Log from Console :" +msg)
}
}

时间: 2024-10-09 20:29:55

scala 14 trait的相关文章

Scala:trait

Scala开篇(目录) 在Scala中有一个trait类型,它可以被继承,而且支持多重继承,其实它更像我们熟悉的接口(interface),但它与接口又有不同之处是: trait中可以写方法的实现,interface不可以(java8开始支持接口中允许写方法实现代码了),这样看起来trait又很像抽象类(abstract),一会我们会通过反编译,看看Scala中对trait是怎样处理的,先来看看trait的使用. //声明一个 trait trait TraitBase{ def add(x:I

scala的trait执行报错: 错误: 找不到或无法加载主类 cn.itcast.scala.`trait`

scala的trait执行报错: 错误: 找不到或无法加载主类 cn.itcast.scala.`trait`.Children 原因:包名写成了trait,与trait关键字重名了: package cn.itcast.scala.`trait` 解决方法:将包名trait修改为其他名字,比如traits 原文地址:https://www.cnblogs.com/mediocreWorld/p/11368233.html

scala中trait学习笔记

scala中提供的trait(特质)和Java中的Interface有很多相似之处.都可以持有方法的声明和属性,但是trait还有比interface强大的多的其他用法. 1. trait可以带有方法实现: 2. trait与interface一样,可以互相继承.但是trait可以继承自某个类,但是这种特质只能够混入父类的子类中,不能随意混入: 3. trait中可以在运行时动态调用方法. 下面举一个trait使用的例子. 首先定义一个虚类IntQueue和特质Logger abstract c

scala 用trait还是用abstract class

package com.scala.idle object TraitOrAbstractClass { def main(args: Array[String]): Unit = { } } /** * 继承两个trait,N多方便啊! */ class TestClass000 extends Trait000 with Trait001{ } /** * 继承两个abstract class,Error了.Error信息如下: * Multiple markers at this line

关于scala的trait

最近一个月在学习scala,今天刚对trait有点感觉,所以记下来..... trait在scala中被称作特质,在我个人理解,trait就相当于java中interface和abstract class的结合体,又可以混入多个trait,又可以在trait写具体的方法实现,通过with这个trait,就可以在类里使用trait的方法,其他类在调用某个方法时,如果这个类里没有这个方法,则会去trait里找.而且Atrait混入了另一个Btrait,则所有混入Atrait的子类都拥有Btrait的

【Scala篇】--Scala中Trait、模式匹配、样例类、Actor模型

一.前述 Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大. 模式匹配机制相当于java中的switch-case. 使用了case关键字的类定义就是样例类(case classes),样例类是种特殊的类. Actor相当于Java中的多线程. 二.具体阐述 trait特性 1.概念理解 Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大. 与接口不同的是,它还可以定义属性和方法的实现. 一般情况下Scala的类可以继承多个Tra

scala中Trait简单使用

trait Log { def log(message:String) = println("log:" + message) } /** * 为实例混入trait * */ trait Logs{ def log(message:String){} } trait MyLog extends Logs { override def log(message: String): Unit = { println("log:" + message) } } class

快学Scala(14)--模式匹配和样例类

更好的switch def main(args: Array[String]): Unit = { var sign: Int = 0 val ch: Char = '+' val color = Color.BLACK sign = ch match { case '+' => 1 case '-' => -1 case _ => 0 } color match { case Color.RED => ; case Color.BLACK => ; case _ =>

Scala trait

trait logger{ def log(msg : String)} //继承的第一个trait用extends关键字,其余的用with 连接 class ConcreteLogger extends logger with Cloneable{ override def log(msg : String) = { println("log log") }} //AnotherLogger一定要继承logger,否则不能混入 trait AnotherLogger extends