1.classOf[T]

获取指定类型的class对象

2.isInstanceOf[T]

判断该对象是否是该类型

3.asInstanceOf[T]

强制转换

4.getClass

isInstanceOf 只能判断出对象是否为指定类以及其子类的对象,
而不能精确的判断出,对象就是指定类的对象;
如果要求精确地判断出对象就是指定类的对象,
那么就只能使用 getClass 和 classOf 了;
p.getClass 可以精确地获取对象的类,classOf[XX]可以精确的获取类,
然后使用 == 操作符即可判断;

  1. package cn.itcast.extends_demo
  2. class Person4 {}
  3. class Student4 extends Person4
  4. object Student4{
  5. def main(args: Array[String]) {
  6. val p:Person4=new Student4
  7. //判断p是否为Person4类的实例
  8. println(p.isInstanceOf[Person4])//true
  9. //判断p的类型是否为Person4类
  10. println(p.getClass == classOf[Person4])//false
  11. //判断p的类型是否为Student4类
  12. println(p.getClass == classOf[Student4])//true
  13. }
  14. }