instanceof关键字
java基础篇
语法格式如下:
对象instanceof类型 --返回boolean类型值
该语句一般用于判断一个对象是否为某个类的实例,是返回true,否返回false
通过instanceof关键字,我们可以很方便的检查对象有类型,但如果一个父类的子类过多,这样的判断还是显得很繁,那么如何去设计一个父类呢?
1、父类通常情况下都设计为抽象类或接口,其中优先考虑接口,如接口不能满足才考虑抽象类。
2、一个具体的类尽可能不去继承另一个具体类,这样的好处是无需检查对象是否为父类的对象。
public class aa{
public static void main(String[] args){
Person man = new Man();
say(man);
Person w = new Women();
say(w);
}
public static void say(Person p){
p.say();
if(p instanceof Women){
Women w = (Women)p;
w.getAngry();
}
}
}
abstract class Person{
private String name;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public abstract void say(); //抽象方法
}
class Man extends Person{
public void say(){
System.out.println("man");
}
}
class Women extends Person{
public void say(){
System.out.println("women");
}
public void getAngry(){
System.out.println("angry");
}
}