区分继承的类

Meh*_*hdi 1 java extends

我有3个班,第一个是人:

public class Person {    
    Person() {

    }
}
Run Code Online (Sandbox Code Playgroud)

其次是工程师,延伸人

public class Engineer extends Person { 
    Engineer() {

    } 
}
Run Code Online (Sandbox Code Playgroud)

和另一个人的延伸

public class Doctor extends Person {
    Doctor() {

    } 
}
Run Code Online (Sandbox Code Playgroud)

最后一个是将构造函数作为对象Person的工作

public class Work {
    Work(Person p) {
    //how to insure that p is Engineer ?
    }
}
Run Code Online (Sandbox Code Playgroud)

如何检测对象p是Engeneer而不是来自另一个类?

ale*_*gen 6

您可以使用instanceof关键字来检查对象的类型.它的工作原理如下

if(p instanceof Engineer) {
   // do Engineer stuff
} else {
   // not an Engineer object
}
Run Code Online (Sandbox Code Playgroud)