java instanceof 运算符(多态2)

  1. 多态性带来了一个问题,就是如何判断一个变量所实际应用的对象的类型,C++使用runtime-type information(RTTI),java使用instranceof操作符。
  2. instanceof运算符用来判断一个变量所引用的对象的实际类型,是引用的对象的类型,不是变量的类型。
  3. 示例代码如下:
package j02_polymorphism;

public class j02_main_poly02 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //引用people类的实例
        People peo = new People();
        if(peo instanceof Object){
            System.out.println("一个对象。");
        }
        if(peo instanceof People){
            System.out.println("一个人。");
        }
        if(peo instanceof Teacher){
            System.out.println("一位教师。");
        }
        if(peo instanceof preson){
            System.out.println("领导。");
        }
        System.out.println("************************");
        peo = new Teacher();
        if(peo instanceof People){//返回true
            System.out.println("people2 - teacher");
        }
        if(peo instanceof preson){//返回false
            System.out.println("people2 - preson");
        }


    }

}

class People{};
class Teacher extends People{};
class preson extends Teacher{};

你可能感兴趣的:(java)