首页 > 代码库 > 胡博君轻松解读Java之instanceof关键字的用法

胡博君轻松解读Java之instanceof关键字的用法

语法:

对象  instanceof  类     判断这个对象是否属于这个类并且返回boolean类型的结果


instanceof的用途:

当一个父类拥有多个子类的时候,且有需要区分这些子类的时候,这个instanceof就能派上用场了。


举例说明:

package com.xiaohu.text_instanceof;


public class Text {
    public static void main(String[] args) {
  Man p =new Man();
  p.name="胡博君";
  eat(p);
  
  Woman p1 =new Woman();
  p1.name="小红";
  eat(p1);
   }
    public static void eat(Person m){
    m.eat();

//这里使用了instanceof关键字
    if(m instanceof Woman){
    Woman woman =(Woman)m;
    woman.say();
    }
    }
    
}
abstract class Person{
String name;


public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract void eat();
}
class Man extends Person{


public void eat() {
System.out.println(name+"吃饭了");
}

}
class Woman extends Person{


public void eat() {
System.out.println(name+"吃饭了");
}
public void say(){
System.out.println("说话了");
}

温馨提示:instanceof一般用于继承关系的类,且一个父类拥有多个子类,且常用于多态中。多态转型时候可能会因为父类拥有多个子类,且父类又需要转换为某个明确的子类的时候,就需要用到instanceof来做判断了,如果没有这个判断,就会出现类型转换异常,以上述为例,如果没有这个判断,就会导致传进来的是Man的实例的时候,而里面却转换成了Woman,子类与子类之间是不能转换的。



欢迎大家收看我的在线Java全套免费教学超清视频:

http://v.youku.com/v_show/id_XODQ1NjU0NDc2.html   这是其中的一个视频连接,大家可以拖动到优酷视频下方,订阅我的账号,因为以后我会有更多视频免费提供

百度搜索:输入Fcs_D调的码农 ,或者输入"胡博君"就能看到我的很多视频

或者加我的微信号:fcsboy     我可以及时通过微信通知你们

QQ学习群:237053693


胡博君轻松解读Java之instanceof关键字的用法