本文概述
- Scala特性示例
- Scala特性示例
- Scala特性示例:在一个类中实现多个特性
- 具有抽象和非抽象方法的Scala特性
通过在trait中使用val或var关键字声明的变量在实现trait的类中内部实现。使用val或var声明但未初始化的任何变量都被视为抽象变量。
特性被编译为具有相应实现类的Java接口, 这些实现类包含特征中实现的任何方法。
Scala特性示例
trait Printable{def print()}class A4 extends Printable{def print(){println("Hello")}}object MainObject{def main(args:Array[String]){var a = new A4()a.print()}}
输出
Hello
如果类扩展了特征但未实现在该特征中声明的成员, 则必须将其声明为抽象。让我们来看一个例子。
Scala特性示例
trait Printable{def print()}abstract class A4 extends Printable{// Must declared as abstract classdef printA4(){println("Hello, this is A4 Sheet")}}
Scala特性示例:在一个类中实现多个特性【Scala特质介绍和用法示例】如果一个类实现了多个特征, 它将扩展第一个特征, 类, 抽象类。 with关键字用于扩展其余特征。
你可以使用trait实现多个继承。
trait Printable{def print()}trait Showable{def show()}class A6 extends Printable with Showable{def print(){println("This is printable")}def show(){println("This is showable");
}}object MainObject{def main(args:Array[String]){var a = new A6()a.print()a.show()}}
输出
This is printableThis is showable
具有抽象和非抽象方法的Scala特性你也可以像抽象类一样在trait中定义方法。即你也可以将特征视为抽象类。在scala中, 特质与抽象类几乎相同, 除了它不能具有构造函数。你不能扩展多个抽象类, 但可以扩展多个特征。
Scala特性示例
trait Printable{def print()// Abstract methoddef show(){// Non-abstract methodprintln("This is show method")}}class A6 extends Printable{def print(){println("This is print method")}}object MainObject{def main(args:Array[String]){var a = new A6()a.print()a.show()}}
输出
This is print methodThis is show method
推荐阅读
- Scala字符串介绍和用法示例
- Scala多维数组
- Scala final关键字用法示例
- Scala数组介绍和用法
- Scala访问修饰符用法实例
- Spring Boot -- 启动流程分析之ApplicationContext 中
- OBEX 4. OBEX Application Framework
- 字节小程序关于在安卓机型下input聚焦时内容被撑走
- 将预装APP刷机包里删除VIVO x6刷机教程