函数参数、变长参数、类继承的测试代码:
//函数参数
//只指定函数名,不指定参数列表,则能传递带任意参数列表的函数作为func的参数
object testFunc {
def func(f: =>Unit)={
f
}
def f1(a:String) ={
println("this is f1"+a)
}
def f2(a:String,b:String) ={
println("this is f2"+a+b)
}
def main (args: Array[String]) {
func(f2("aaaaaa","bbbbbb"))
}
}
-------------------------------------------------------------------------------
//变长参数
//通过继承测试变长参数,满足不同子类中对于函数参数个数的需求
trait father{
val name = "father"
def intro(ars:String*)
}
class son extends father{
override val name = "son"
override def intro(ars:String*): Unit ={
println(ars.length)
ars.foreach(print)
println
}
}
class daughter extends father{
override val name="daughter"
override def intro(ars:String*): Unit ={
println(ars.length)
ars.foreach(println)
}
}
object testFunc{
def main(args: Array[String]) {
val son1 = new son
son1.intro("a","b","c")
val daughter1 = new daughter
daughter1.intro("ddddddd")
}
}
--------------------------------------------------------------------------------
//类继承
//注意类参数列表中的val和override的使用方式
class a(val p1:String,val p2:String)
class b(override val p1:String,override val p2:String)extends a(p1:String,p2:String)