Scala的继承和多态
2021/8/3 23:06:38
本文主要是介绍Scala的继承和多态,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
基本语法
class 子类名 extends 父类名 { 类体 }
其中:
(1)子类继承父类的属性和方法
(2)scala 是单继承
案例实操
(1)子类继承父类的属性和方法
(2)继承的调用顺序:父类构造器->子类构造器
package chapter06 object Test07_Inherit { def main(args: Array[String]): Unit = { val student1 = new Student7("ailce",12) val student2 = new Student7("bob",12, "std001") val teacher = new Teacher() teacher.printInfo() val person = new Person7() def personInfo(person: Person7): Unit ={ person.printInfo() } personInfo(student1) personInfo(teacher) personInfo(person) } } //定义一个父类 class Person7(){ var name: String = _ var age: Int = _ println("1.父类的主构造器调用") def this(name: String , age: Int){ this() println("2.父类的辅助构造器调用") this.name = name this.age = age } def printInfo(): Unit ={ println(s"Person: $name, $age") } } //定义子类 class Student7(name: String, age: Int) extends Person7(){ var StdNo: String = _ println("3,子类的构造器被调用") def this(name: String, age: Int, stdNo: String){ this(name,age) println("4.子类的辅助构造器调用") this.StdNo = stdNo } override def printInfo(): Unit = { println(s"Student: $name, age: $age, StdNo: $StdNo") } } class Teacher extends Person7{ override def printInfo(): Unit = { println(s"Teacher: $name, age: $age") } }
(3)动态绑定 :Scala 中属性和方法都是动态绑定,而 Java中只有方法为动态绑定。
package chapter06 object Test08_DynamicBind { def main(args: Array[String]): Unit = { //属性和方法都是动态绑定 val student : Person8 = new Student8 println(student.name) student.hello() } } class Person8{ val name : String = "person" def hello(): Unit ={ println("person,hello") } } class Student8 extends Person8{ override val name : String = "student" override def hello(): Unit ={ println("student,hello") } }
结果截图
这篇关于Scala的继承和多态的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27Rocket消息队列资料:新手入门指南
- 2024-11-27rocket消息队资料详解与入门指南
- 2024-11-27RocketMQ底层原理资料详解入门教程
- 2024-11-27RocketMQ项目开发资料:新手入门教程
- 2024-11-27RocketMQ项目开发资料详解
- 2024-11-27RocketMQ消息中间件资料入门教程
- 2024-11-27初学者指南:深入了解RocketMQ源码资料
- 2024-11-27Rocket消息队列学习入门指南
- 2024-11-26Rocket消息中间件教程:新手入门详解
- 2024-11-26RocketMQ项目开发教程:新手入门指南