Scala--继承

Posted Spark菜鸟儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala--继承相关的知识,希望对你有一定的参考价值。

继承:在ScalaJava一样都是使用extends进行继承,

scala可以继承类,也可以继承接口

例子1:接口里方法没有实现

 

//定义接口
trait Plant {
 
//定义一个方法,但是方法没有实现
 
def color()
}

//定义一个类

abstract class Fruit {

}
 
//定义一个类Apple
Apple继承Plant会报错,主要是因为Plant存在没有被实现的方法color
小技巧:ctrl+I  会显示没有被实现的方法

class Apple extends Plant{
// override可以省略不写
  override def color(): Unit = ???
}
 

运行结果:



例子2:接口里方法有实现

 

//定义接口
trait Plant {
 
//定义一个方法,方法被实现(java8也可以)
 
def color():Unit={
    println(
"Plant color")
  }
}
class Apple extends Plant{
// override可以不可以省略
override def color(): Unit = {
  println(
"color")
}

}

运行结果同上

如果没有Plant方法没有被重写,结果如下

 

案例3scalajava都支持单继承,继承类,实现多个接口

//trait意思是特征,它的意义和java中接口很类似
trait Vega {

}
class Apple extends Fruit with Plant with Vega{

}
 


以上是关于Scala--继承的主要内容,如果未能解决你的问题,请参考以下文章

Scala 面向对象编程之继承

7scala面向对象-继承

scala中的继承

Scala入门系列:面向对象之继承

scala入门教程:scala中的面向对象定义类,构造函数,继承

scala——关键字trait的使用