您现在的位置是:主页 > news > 网站自己可以做么/一媒体app软件下载老版本

网站自己可以做么/一媒体app软件下载老版本

admin2025/5/25 20:24:53news

简介网站自己可以做么,一媒体app软件下载老版本,郑州企业建设网站,网站短信验证码接口怎么做Scala中包含 不变,协变,逆变 在Scala中,所有输入参数都是逆变,所有输出都是协变 当两个类存在继承关系时,它们被放入到 class[ T ] 中时,原本是不存在关系的 但是,使用 class [T],那么这两个就存…

网站自己可以做么,一媒体app软件下载老版本,郑州企业建设网站,网站短信验证码接口怎么做Scala中包含 不变,协变,逆变 在Scala中,所有输入参数都是逆变,所有输出都是协变 当两个类存在继承关系时,它们被放入到 class[ T ] 中时,原本是不存在关系的 但是,使用 class [T],那么这两个就存…

Scala中包含 不变,协变,逆变
在Scala中,所有输入参数都是逆变,所有输出都是协变

当两个类存在继承关系时,它们被放入到 class[ T ] 中时,原本是不存在关系的
但是,使用 class [+T],那么这两个就存在继承关系,并且只能创建本类或者子类,
使用 class [-T] 就可以创建本类或父类

package Testobject ObjInverAndConvar {class Animal{def shout(): Unit ={println("大叫一声")}}class Cat extends Animal {override def shout(): Unit = {println("喵呜~~~~")}}class Tiger extends Cat {override def shout(): Unit = {println("吼吼吼~~")}}class Invarient[T]{}    //[T] : 不变class Convraint[+T]{}   //[+T]: 协变 创建的对象只能是自己的子类或本类class Inversion[-T]{}   //[-T]: 逆变 创建的对象只能是自己的父类或本类def main(args: Array[String]): Unit = {var animal = new Animalvar cat = new Catvar tiger = new Tigervar tigerIn:Invarient[Tiger] = new Invarient[Tiger]var convraint:Convraint[Cat] = new Convraint[Tiger]
//    var convraint1:Convraint[Cat] = new Convraint[Animal]  //写父类,就会报错var inverse:Inversion[Tiger] = new Inversion[Cat]
//    var inver:Inversion[Cat] = new Invarient[Tiger]        //写子类,就会报错}
}