A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 至简_HREO 中级黑马   /  2015-6-30 07:43  /  287 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1. 多态

•一个对象变量可以指示多种实际类型的现象被称为多态


•在Java程序设计语言中,对象变量是多态的。如一个超类变量既可以用引用超类对象,也可以引用一个超类的任何一个子类的对象。


注意:
•不能将一个超类的引用赋给子变量。

•在Java中,子类数组的引用可以转换为超类数组的引用,而不需要采用强制类型转换,但需要注意的是所有数组都要牢记创建它们的元素类型,并负责监督仅将类型兼容的引用存储到数组中。

2.动态捆绑

在运行时能够自动地选择调用哪个方法的现象称为动态绑定

下面是动态绑定调用过程详细描述:
1.编译器查看对象的声明类型和方法名。

2.接下来,编译器将查看调用方法是提供的参数类型(重载解析),至此,编译器已获得需要调用的方法名和参数类型。

3.然后查看修饰符,如果是private方法、static方法、final方法或者构造器,那么编译器将可以准确的知道调用哪个方法,我们将这种调用方式称为静态绑定 。


4.最后虚拟机通过查找方法表(列出了所有方法的签名和实际调用方法)寻找对应的方法。

小概念:

•方法的名字和参数列表称为方法的签名。

•返回类型不是签名的一部分,在覆盖方法时,一定要保证返回类型的兼容性。允许子类将覆方法的返回类型定义为原返回类型的子类型。

•final类和方法:

1.不允许扩展的类被称为final类。

2.对于final域来说,构造对象之后就不允许改变它们的值了。

3.如果将一个类声明为final,只有其中的方法自动地成为final,而不包括域。

2 个回复

倒序浏览
学习了~~~
回复 使用道具 举报
学习了,。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马