多态

  • 3种类型:类、接口、枚举
  • 4个修饰符:private | protected | public、final、static、abstract
  • 5大成员:成员变量、方法、构造器、初始化块、内部类

概念

多态:同一个类型的多个实例,在执行同一个方法,呈现出多种行为特征----这就叫“多态”。

为什么有多态?

因为Java执行方法时,方法的执行时是动态绑定的,方法总是执行该变量实际所指向对象的方法。
转换类型分为:
向上转型:子类对象可以直接赋值给父类变量,自动完成。
SuperClass sup = new SubClass();
向下转型:父类变量赋值给子类变量,强制转换——模式:(类型)变量名;
SubClass sub = (SubClass) sup;

强转运算符的注意点:

①强转运算符只能在编译类型具有继承关系的变量之间进行强转,否则编译错误:不兼容的类型。
②在编译类型具有继承关系的变量之间进行转换,如果被转变量的实际类型,不是要转的目标类型,程序就会引发ClassCastException(类型转换异常)

变量的类型

编译时类型:声明变量时指定的类型。在Java程序的编译阶段,Java编译器只认编译时类型。
运行时类型(实际类型):该变量实际所引用的对象的类型。

instanceof运算符

  • 为了避免ClassCastException异常,Java增加的运算符。
  • 变量名 instanceof 类型----当变量所引用的对象是后面类或子类的实例时,该运算符返回true。
  • instanceof 只能在编译类型具有继承关系之间才能进行判断,否则编译报错:不兼容类型
  • 该运算符可以保证,被强转的变量确实是可转换的才进行转换,从而避免ClassCastException。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值