scala的继承】的更多相关文章

package com.test.scala.test /** * 模拟java的继承,扩展类 */ abstract class ExtendClass(val des:String) { def undo():String def redo():String } object DoNothingAction extends ExtendClass("do nothing"){ override def undo:String={"I don't know how!&quo…
    ## 1. 继承 Scala语言通过 extends 关键字来继承类. 那么继承一个类有什么好处呢? 子类除了拥有继承自超类的方法和字段(即为val(常量), var(变量)所定义的), 还可以添加自己需要的新方法和新字段, 而且不但可以重写(override)超类的方法, 还可以重写超类的`字段`. ### final 关键字 在Scala中, 不仅可以将类声明为final, 而且可以将字段和方法声明为final 当类被声明为final时, 类不可以被继承; 当方法和字段被声明为fin…
Scala中的继承与Java有着显著的不同. 抽象类abstract class abstract class Car{//抽象类 val carBrand:String;//抽象字段,一个没有被初始化的字段 def info();//抽象方法 def greeting(){println("Welcome to my car")}//非抽象方法 } Scala的抽象类同Java一样不能被实例化,但是可以被继承,可以包含非抽象方法. 定义抽象字段的时候,只要没给出初始化值,就表示为一个…
一.继承 1.extends Scala中,让子类继承父类,与Java一样,也是使用extends关键字 继承就代表,子类可以从父类继承父类的field和method:然后子类可以在自己内部放入父类所没有, 子类特有的field和method:使用继承可以有效复用代码 子类可以覆盖父类的field和method:但是如果父类用final修饰,field和method用final修饰,则该类是无法被继承的, field和method是无法被覆盖的: ### scala> :paste // Ent…
package cn.itcast.scala.demo2 class Person { //private关键字和final关键字修饰的常量无法被继承重写 val id: Int = 1 var name: String = "zhangsan" def sayHello = println("hello") } // 子类可以使用extends继承父类,这么做可以提高代码复用性 class Coder extends Person { var skills: S…
多继承问题: object LoadIssueDemo extends App { import java.io.PrintWriter trait Logger { def log(msg: String): Unit } trait FileLogger extends Logger { val fileName: String val fileOutput = new PrintWriter(fileName: String) fileOutput.println("#") de…
我们知道scala中一切皆为对象,函数也是对象,数字也是对象,它是一个比java还要面向对象的语言. 定义scala的简单类 class Point (val x:Int, val y:Int) 上面一行代码就是一个scala类的定义: 首先是关键字class 其后是类名 Point 类名之后的括号中是构造函数的参数列表,这里相当于定义了对象的两个常量,其名称分别为x,y,类型都是Int 上面的类和下面的类是一致的,不过更精简了. class Point (xArg:Int, yArg:Int)…
我们知道scala中一切皆为对象,函数也是对象,数字也是对象,它是一个比java还要面向对象的语言. 定义scala的简单类 class Point (val x:Int, val y:Int) 上面一行代码就是一个scala类的定义: 首先是关键字class 其后是类名 Point 类名之后的括号中是构造函数的参数列表,这里相当于定义了对象的两个常量,其名称分别为x,y,类型都是Int 上面的类和下面的类是一致的,不过更精简了. class Point (xArg:Int, yArg:Int)…
本章主要从整体层面了解Scala中的类层级关系. 一.Scala的类层级 在Java中Object类是所有类的最终父类,其他所有类都直接或间接的继承了Object类.在Scala中所有类的最终父类为Any类,所以Any类中的所有方法都可以在Scala中任意类中使用.但是这并不是说Scala中的Any类就类似于Java中的Object类,Scala中真正地位类似于Java中Object类的是AnyRef类. 在Scala中还提供了两个类Null和Nothing,这两个类在整个Scala类层级的最底…
1:Scala之函数式编程学习笔记: :Scala函数式编程学习: 1.1:Scala定义一个简单的类,包含field以及方法,创建类的对象,并且调用其方法: class User { private var name = "张三"; def hello(): Unit ={ println("hello : " + name) } //注:如果定义方法时不带括号,则调用的时候也不可以加括号,否则报错. def getName = name; } //创建一个obj…