Java之instanceof

class Base{

    int x = 1;

    static int y = 2;

    String name(){

        return "mother";

    }

    static String staticname(){

        return "static mother";

    }

}

class Subclass extends Base{

    int x = 4;

    int y = 5;

    int z = 6;

    String name(){

        return "baby";

    }

    static String staticname(){

        return "static baby";

    }

}

public class Test02{

    public static void main(String[] args){

        Subclass s = new Subclass();

        if(s instanceof Subclass){

            System.out.println(s.x+" "+s.y+" "+s.name()+" "+s.staticname());

 

        }

        

        Base s1 = s;

        if(s1 instanceof Subclass){

            System.out.println(s1.x+" "+s1.y+" "+s1.name()+" "+s1.staticname());

        

        }

        

        Base s2 = new Base();

        if(s2 instanceof Subclass){

            System.out.println(s2.x+" "+s2.y+" "+s2.name()+" "+s2.staticname());

        

        }

        

    }

}

/*

结果:

4 5 baby static baby

1 2 baby static mother

 

结论:

instanceof 用来判定对象A是否为类B的对象,或者A,B之间是否存在继承关系

如果A,B之间是不否存在继承关系,则编译不过

 

*/

posted @ 2015-09-22 12:42  iucforever  阅读(254)  评论(0编辑  收藏  举报