{ } 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]) } }

显示创建对象的指定类型需要勾选☑️此选项
【Scala】isInstanceOf 与 classOf的对比,代码+注解简洁明了

控制台结果

true
true
------------
true
true
============
true
false
------------
true
false

相关文章:

  • 2022-12-23
  • 2021-05-28
  • 2022-12-23
  • 2021-06-15
  • 2021-05-21
猜你喜欢
  • 2021-07-12
  • 2022-12-23
  • 2021-12-12
  • 2022-12-23
  • 2021-06-18
  • 2021-06-21
  • 2022-12-23
相关资源
相似解决方案