scala构造器实战
父类
abstract class Event(val name:String) {
var time:Long
var content:String
}
子类
private[spark] class BaseEvent(name: String) extends Event(name) {
var id: String = _
override var time: Long = _
override var content: String = _
//从构造器
def this(id:String,name:String,time:Long,content:String){
this(name)//主构造器
this.id = id
this.time = time
this.content = content
}
//重写toString
override def toString():String ={
id+","+name+","+time+","+content
}
}
再子类
private[spark] class AlarmEvent(name: String) extends BaseEvent(name) {
var event_type: String = _
var event_level: String = _
var event_src_ip: String = _
var event_src_port: String = _
var event_tar_ip: String = _
var event_tar_port: String = _
var event_src_server_name: String = _
var event_tar_server_name: String = _
var event_group_count: Long = _
var event_group_start_time: String = _
var event_group_end_time: String = _
var event_server_name: String = _
def this(id: String, name: String, time: Long, content: String) {
this(name)
this.id = id
this.time = time
this.content = content
}
//构造器的继承与重载
def this(id: String,
name: String,
time: Long,
content: String,
event_type: String,
event_level: String,
event_src_ip: String,
event_src_port: String,
event_tar_ip: String,
event_tar_port: String,
event_src_server_name: String,
event_tar_server_name: String
) {
this(name, id, time, content)
this.event_type = event_type
this.event_level = event_level
this.event_src_ip = event_src_ip
this.event_src_port = event_src_port
this.event_src_server_name = event_src_server_name
this.event_tar_ip = event_tar_ip
this.event_tar_port = event_tar_port
this.event_tar_server_name = event_tar_server_name
}
//重载
def this(id: String,
name: String,
time: Long,
content: String,
event_type: String,
event_level: String,
event_src_ip: String,
event_src_port: String,
event_tar_ip: String,
event_tar_port: String,
event_src_server_name: String,
event_tar_server_name: String,
event_group_count: Long,
event_group_start_time: String,
event_group_end_time: String,
event_server_name: String
) {
this(name, id, time, content, event_type, event_level,event_src_ip,event_src_port,event_tar_ip,event_tar_port,event_src_server_name,event_tar_server_name)
this.event_group_count=event_group_count
this.event_group_start_time=event_group_start_time
this.event_group_end_time=event_group_end_time
this.event_server_name=event_server_name
}
//toString的继承重载
override def toString():String= {
super.toString() +","+ event_type + "," + event_level + "," + event_src_ip + "," + event_src_port +","+ event_src_server_name + "," + event_tar_ip + "," + event_tar_port + "," + event_tar_server_name
}
}
执行结果:
2,1,0,3,4,5,6,7,9,80,8,00
scala语言的父类继承和重载,toString的继承重载,靠super
子类中的构造器不能够super,报错
scala构造器实战的更多相关文章
- Scala 深入浅出实战经典 第81讲:Scala中List的构造是的类型约束逆变、协变、下界详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-97讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- Scala 深入浅出实战经典 第79讲:单例深入讲解及单例背后的链式表达式
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- Scala 深入浅出实战经典 第78讲:Type与Class实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载: 百度云盘:http://pan.baidu.com/s/1c0noOt ...
- Scala 深入浅出实战经典 第77讲:模式匹配下的提取器动手构造实战
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- Scala 深入浅出实战经典 第76讲:模式匹配下的赋值语句
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载: 百度云盘:http://pan.baidu.com/s/1c0noOt ...
- Scala 深入浅出实战经典 第75讲:模式匹配下的For循环
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载: 百度云盘:http://pan.baidu.com/s/1c0noOt ...
- Scala 深入浅出实战经典 第68讲:Scala并发编程原生线程Actor、Cass Class下的消息传递和偏函数实战解析
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载: 百度云盘:http://pan.baidu.com/s/1c0noOt ...
- Scala 深入浅出实战经典 第67讲:Scala并发编程匿名Actor、消息传递、偏函数解析
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- Scala 深入浅出实战经典 第66讲:Scala并发编程实战初体验
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
随机推荐
- 论java虚拟类和接口的区别
如题:Abstract使数据成员虚拟化,而Interface则使方法成员虚拟化.
- null 之AddAll、Add和Boolean
@Test //failed public void TestListAddAll(){ List<TravelerInfo> travelerInfoSummary=new ArrayL ...
- chinapay
http://s.yanghao.org/program/viewdetail.php?i=71959 http://www.codeproject.com/csharp/biginteger.asp ...
- html+css源码之实现登录弹出框遮罩层效果
在web开发中,很多网站都做了一些特别炫丽的效果,比如用户登录弹框遮罩层效果,本文章向大家介绍css如何实现登录弹出框遮罩层效果,需要的朋友可以参考一下本文章的源代码. html+css实现登录弹出框 ...
- GCD 深入理解(一)
http://www.cocoachina.com/industry/20140428/8248.html 本文由@nixzhu翻译至raywenderlich的<grand-central-d ...
- tornado框架之路二
二.路由系统 路由系统其实就是 url 和 类 的对应关系,这里不同于其他框架,其他很多框架均是 url 对应 函数,Tornado中每个url对应的是一个类. #!/usr/bin/env pyth ...
- 【练习】显示MySQLadmin 库户籍选项
[oracle@enmo ~]$ mysqladmin -V mysqladmin Ver , for Linux on x86_64
- 虚拟内存和swap分区的关系
首先,这两个概念分别对应windows和linux,即:windows:虚拟内存linux:swap分区 windows即使物理内存没有用完也会去用到虚拟内存,而Linux不一样 Linux只有当物理 ...
- SQL where 1=1的作用
浅谈where 1=1 1.简单理解的话where 1=1 永真, where 1<>1 永假 2.1<>1 的用处: 用于只取结构不取数据的场合 例如: ...
- leetcode279. Perfect Squares
learn from DP class Solution { public: int numSquares(int n) { if(n<=0)return 0; int * dp = new i ...