instanceof和类型转换

阅读量: 4 编辑

一、instanceof 和 类型转换 介绍

1、在使用运算符 instanceof 可以判断对象的类型;

2、如果 instanceof 判断是此类型,那么可以做对象类型转换(Casting);

3、Java的对象类型可以分为两种情况:自动类型和强制类型

4、对象的类型转换只用在有继承关系的对象之间

  • Person pp = new Girl();

  • Girl gg = (Girl)pp;

二、编程实战

代码的详细解读,可以参考视频教程

Person.java

/**
 * User: 祁大聪
 */
public class Person {

    public void getName(){
        System.out.println("Person name");
    }
}

子类:Boy.java

/**
 * User: 祁大聪
 */
public class Boy extends Person{

	@Override
    public void getName(){
        System.out.println("Boy name");
    }

    public void dance(){
        System.out.println("Boy dance");
    }
}

子类:Girl.java

/**
 * User: 祁大聪
 */
public class Girl extends Person{
	@Override
    public void getName(){
        System.out.println("Girl name");
    }

    public void sing(){
        System.out.println("Girl sing");
    }
}

测试类:Test.java

/**
 * User: 祁大聪
 */
public class Test {

    public void printPerson(Person p){
        System.out.println(p instanceof Girl);
        System.out.println(p instanceof Boy);

        if(p instanceof Girl){//判断类型
            Girl girl = (Girl)p;//强制转换为Girl
            girl.sing();//然后就可以调用Girl的函数了
        }

        if(p instanceof Boy){
            Boy boy = (Boy)p;
            boy.dance();
        }

    }

    public static void main(String[] args) {
        Person p = new Girl();

        Test t = new Test();
        t.printPerson(p);
        t.printPerson(new Boy());
    }
    
}

爱码岛编程公众号
试卷资料
爱码岛编程小程序
在线刷题
苏ICP备13052010号
©2023 南京匠成信息科技有限公司