- 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]) //trueprintln("student1 is Person: " + student1.isInstanceOf[Person]) //trueprintln("person1 is Person: " + person1.isInstanceOf[Person]) //trueprintln("person1 is Student: " + person1.isInstanceOf[Student]) //trueprintln("person2 is Student: " + person2.isInstanceOf[Student]) //false//类型转换if (person1.isInstanceOf[Student]){val newStudent = person1.asInstanceOf[Student]println(classOf[Student]) //class test.test$StudentnewStudent.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")}
} }
```
