class Animal {
}
class Cat extends Animal {
}
object Cat {
def main(args: Array[String]): Unit = {
//新创建一个Cat对象
val cat1: Cat = new Cat
//创建另一个Cat对象
val cat2: Animal = new Cat //因为Cat继承了Animal类,所以指定类型也可以是Animal
//isInstanceOf只能粗略判断指定对象是不是一个类的实例及其子类的实例,并不能精准判断来自哪个类
println(cat1.isInstanceOf[Cat])
println(cat2.isInstanceOf[Animal])
println("------------")
println(cat2.isInstanceOf[Cat])
println(cat2.isInstanceOf[Animal])
println("============")
//而 getClass == classOf[]可以精准判断指定对象是否是某一个类的实例
println(cat1.getClass == classOf[Cat])
println(cat1.getClass == classOf[Animal])
println("------------")
println(cat2.getClass == classOf[Cat])
println(cat2.getClass == classOf[Animal])
}
}
显示创建对象的指定类型需要勾选☑️此选项
控制台结果
true
true
------------
true
true
============
true
false
------------
true
false