instanceof和转换类型

import oop.Demo009.Preson;
import oop.Demo009.Student;
import oop.Demo009.Teacher;
​
public class Application {
    public static void main(String[] args) {
        //等级
        //Object > String
        //Object > Preson > Teather
        //Object > Preson > Student
        Object object = new Student();
​
        //System.out.println(x instanceof y);//能不能编译通过 得看X和y是否有关系!
​
        System.out.println(object instanceof Student);//true
        System.out.println(object instanceof Preson);//true
        System.out.println(object instanceof Object);//true
        System.out.println(object instanceof Teacher);//true
        System.out.println(object instanceof String);//true
        System.out.println("==========================");
        Preson preson = new Student();
        System.out.println(preson instanceof Student);//true
        System.out.println(preson instanceof Preson);//true
        System.out.println(preson instanceof Object);//true
        System.out.println(preson instanceof Teacher);//false
        //System.out.println(preson instanceof String);//编译报错!
        System.out.println("==========================");
        Student student = new Student();
        System.out.println(student instanceof Student);//true
        System.out.println(student instanceof Preson);//true
        System.out.println(student instanceof Object);//true
        //System.out.println(student instanceof Teather);//编译报错!
        //System.out.println(student instanceof String);//编译报错!
    }
}
package oop.Demo009;
​
public class Teacher extends Preson{
}
package oop.Demo009;
​
public class Student extends Preson{
}
  • 1.能否编译通过,看x 与 y ,若存在父子或子父关系则可以编译

  • 2.若x 与 y 没有父子关系,如 teacher 与 student,就不可以编译

  • 3.编译过后结果是 T/F 看引用指向对象,x 指向的对象如果是后面 y 的子类,即是T


强制转换

public static void main(String[] args) {
        //类型之间的转换:父(高)  子(低)
​
        //高-------------->低(不需要强制转换)
        Preson obj=new Student();
        //obj 将这个对象转换为Student类型,我们就可以使用Student类型的方法了!
        (Student)obj).go();
    }

子类转换父类

//自子类转换为父类,可能丢失自己本来的一些方法
        Student student = new Student();
        student.go();
        Preson preson=student;
        Preson.go//报错!只能进行强制转换调用go方法

多态总结:

  • 1.存在的条件:父类引用指向子类的对象

  • 2.把子类转换为父类,向上转型;

  • 3.把父类转换为子类,向下转型(强制转换);

  • 4.方便方法的调用,减少重复的代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值