Java教程

向上造型和多态

本文主要是介绍向上造型和多态,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

向上造型:什么是造型

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

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

造型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 管的是什么,所以只有运行时候才知道,运行时候才知道的东西是动态的,所以动态绑定

 

 

 

 

搜索

复制

这篇关于向上造型和多态的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!