语法:
对象 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