多态

多态

**********************************************************************************************************

概念:

相同的行为,不同的实现。 ----------------------一定是方法多态。

分类:

1.静态多态:在编译的时候,系统就决定调用哪个方法了。

2.动态多态:在运行中,系统才能动态确定方法所指的对象。

  其中动态多态主要使用重写,以及动态绑定技术。

动态绑定又主要分为:转型技术以及绑定技术。

**********************************************************************************************************

类型的转换:

1.向上转型:把子类的对象赋给父类的变量 ------------一定成功,无风险。

2.向下转型:把父类的值(引用值)赋给子类的变量---------------不一定成功,有风险。

这里向下转型就需要用到强转了:

语法:

子类  变量 = (子类)该子类对象

子类  变量 = (子类)父类对象或者其他子类对象→编译成功 ,运行失败。

为了控制这个风险,就应该先判定后再进行强转。

引入instanceof 

**********************************************************************************************************

instanceof

语法:

对象  instanceof  类型                               如果对象是这个类型的,那么就返回true

    否则为false。

**********************************************************************************************************

当父类引用指向子类对象的时候,如果我们调用被重写的方法,会得到子类重写后的

效果,因为,这个对象本身就是一个子类对象,所以他的实现一定是子类自己实现。

 

基本数据类型没有父类一说,所以Object里面是放不进去的。

但是:

eg:Object [ ] all =new Object[ 10];

Object [ 1] =100;

这里面第二行代码运行却是没有错的。

因为这里面有后台转换,其实代码应该是:

Object [1] = new Integer(100);

系统将100转换为对象的形势保存在了Object里面。



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值