这个java程序为什么输出3个true

[复制链接]
查看11 | 回复1 | 2011-7-1 05:56:14 | 显示全部楼层 |阅读模式
publicclassTest{
        publicstaticvoidmain(Stringargs[]){
                Personp=newPerson();
                Personp1=newTeacher();
                System.out.println(pinstanceofPerson);
                System.out.println(p1instanceofPerson);
                System.out.println(p1instanceofTeacher);
        }
}

classPerson{
        Stringname;
        intage;
        charsex;
        Person(){
               
        }
        Person(Stringname,intage,charsex){
                this.name=name;
                this.age=age;
                this.sex=sex;
        }
        voidshow(){
                System.out.println(\"name:\"name\"age:\"age\"sex:\"sex);
        }
}
classTeacherextendsPerson{
        intnum;
        Teacher(){
               
        }
        Teacher(Stringname,intage,charsex,intnum){
                super.name=name;//或者this.name=name;
                super.age=age;
                super.sex=sex;
                this.num=num;
        }
        voidshow(){
                super.show();
                System.out.println(\"num:\"numname);
        }
}
回复

使用道具 举报

千问 | 2011-7-1 05:56:14 | 显示全部楼层
第一个true不用说吧,其他两个true:
因为Teacher继承了Person,所以Person是Teacher的父类。你要知道对于所有的父类(super)类,instanceof测试都会返回真,包括他们的\"祖先\"Object。希望能帮到你。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行