1.instanceof关键字
语法格式如下:
对象 instanceof 类型 ——返回boolean类型值
改语句一般用于判断一个对象是否为某个类的实例,是返回true,否返回false
2.父类的设计法则
通过instanceof关键字,我们可以很方便的检查对象的类型,但如果是一个父类的子类很多,这样的判断还是显得很繁琐,那么如何去设计一个父类呢?
(1)父类通常情况下都设计为抽象类或接口,其中优先考虑接口,如接口不能满足才考虑抽象类
(2)一个具体的类尽可能不去继承另一个具体类,这样的好处是无需检查对象是否为父类的对象
/**
instanceof关键字
*/
public class InstanceofKeyWordDemo{
public static void main(String[] args){
Person man = new Man();
say(man);
Person w = new Women();
say(w);
}
/*
public static void say(Man m){
m.say();
}
public static void say(Women w){
w.say();
}*/
public static void say(Person p){
p.say();
//判断p对象是否为Women的实例
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("人家是纯爷们!");
}
}
class Women extends Person{
public void say(){
System.out.println("你今天要是再不交租,我就烧了你的铺子!");
}
//本类中进行扩展的方法
public void getangry(){
System.out.println("讨厌,人家生气了啦!");
}
}