ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

向上造型和多态

2022-06-24 20:03:42  阅读:142  来源: 互联网

标签:动态 变量 对象 造型 父类 绑定 多态 向上


向上造型:什么是造型

造型就是把一个类型的对象赋给另外一个类型的变量,这个过程叫做造型

子类的变量不能去接收父类的对象

造型cast:

1.子类的对象可以赋值给父类的变量

2.注意!java中不存在对象对对象的赋值!!

3.父类的对象不能赋值给子类的变量!

Vechicle  v;

Car  c  =  new  Car();

v  =  c;   //可以

c  =  v;

4.可以用造型:

c  =   (Car)v;(只有当v这个变量实际管理的是Car才行)

 

 类型转换和造型区别:

 

 

 

 将 10.2 类型转换过后,10.2 就变成了 10,不再是 10.2 了;
而造型是将它当作另外一个类型来看待,但并不会改造成为另外一个类型

什么是向上造型:

1.拿一个子类的对象,当作父类的对象来用

2.向上造型是默认的,不需要运算符

3.向上造型总是安全的

 

 向下造型:

 

 

 

多态:什么是多态变量

 

1.它有两个类型,一个是它的声明类型,一个是它的动态类型,它的声明类型永远是 Item,而它的动态类型是这次拿到是什么就是什么,可能是 CD 可能是 DVD
2.当通过点运算符说 item 所管理的对象去做 print()的动作的时候,它会让它所实际管理对象的那个类型去做 print()的动作,这样子的一件事情叫做多态
多态的技术基础:绑定

1.当通过对象变量调用函数的时候,调用哪个函数这件事情叫做绑定

2.静态绑定:根据变量的声明类型来定义

3.动态绑定:在根据变量的动态类型来决定

4.在成员函数中调用其他成员函数也是通过this这个对象变量来调用的

对于 Java 来说,所有的绑定都是动态绑定
最后一点也是动态绑定,所有的成员函数的调用都应该是看作一种动态绑定
对于编译器来说,item.print()这一行,在编译的时候,它并不知道这一行到底这个时候 item 管的是什么,所以只有运行时候才知道,运行时候才知道的东西是动态的,所以动态绑定

覆盖:覆盖override

1.子类和父类中存在名称和参数表示完全相同的函数,这一次函数构成妇变

2.通过父类的变量调用存在覆盖关系的函数时,会调用变量当时所管理的对象所属

的类的函数

对于 Java 来说,所有的绑定都是动态绑定
最后一点也是动态绑定,所有的成员函数的调用都应该是看作一种动态绑定
对于编译器来说,item.print()这一行,在编译的时候,它并不知道这一行到底这个时候 item 管的是什么,所以只有运行时候才知道,运行时候才知道的东西是动态的,所以动态绑定

 

 

 

 

搜索

复制

标签:动态,变量,对象,造型,父类,绑定,多态,向上
来源: https://www.cnblogs.com/hungui/p/16410077.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有