- A.isInstanceOf[T]:判断对象A是不是T类型
- A.asInstanceOf[T]:将对象A强转成T类型
- classOf获取对象的类名 ```scala package test
object test { def main(args: Array[String]): Unit = { val student1: Student = new Student(“fyl”, 18) val person1: Person = new Student(“abc”, 18) val person2: Person = new Person(“bbb”,20)
//类型检测
println("student1 is Student: " + student1.isInstanceOf[Student]) //true
println("student1 is Person: " + student1.isInstanceOf[Person]) //true
println("person1 is Person: " + person1.isInstanceOf[Person]) //true
println("person1 is Student: " + person1.isInstanceOf[Student]) //true
println("person2 is Student: " + person2.isInstanceOf[Student]) //false
//类型转换
if (person1.isInstanceOf[Student]){
val newStudent = person1.asInstanceOf[Student]
println(classOf[Student]) //class test.test$Student
newStudent.study() //student study
}
}
class Person(val name: String, val age: Int) { def sayHi(): Unit = { println(“hi from person” + name) } }
class Student(name: String, age: Int) extends Person(name, age) { override def sayHi(): Unit = { println(“hi from person” + name) }
def study() = {
println("student study")
}
} }
```