java 多态总结

来源:互联网 发布:苹果mac怎么切换系统 编辑:程序博客网 时间:2024/05/22 06:26
之前我一直以为 java 只有一种多态——动态多态,直到前段时间在一个帖子上看到了多多态的介绍,才知道java多态分为两种:动态多态与静态多态。

静态多态比较简单,先从它开始说。

静态多态即指编写多个同名方法,在编译期由编译器自动选择使用哪个方法(记住:是在编译器就已经确定)。就常见的例子就重载:
java <wbr>多态总结


动态多态则是要在运行期间才能确定调用哪个方法。

动态多态必须具备三个条件:
1.有继承(也可以是接口实现);
2.子类重写(覆盖)父类方法;
3.父类引用指向子类对象。

要说这个,得先从 new 这个关键字说起。我们常见的 A a = new A(); 这一句有3个动作:
1.声明一个 A 类型的引用 a;
2.创建一个 A 的对象(调用 A 的构造函数);
3.将 A 对象的引用赋值给 a。

所以动态多态的写法一般是:A a = new B(); 这里 B 继承于 A ,并且 B 重写了父类的方法(以 go() 方法为例 ),a 即为父类引用,指向了子类 B 的对象。那么当我们执行:a.go(); 时,实际执行的将是子类 B 的 go() 方法。
下面看个简单的例子:
java <wbr>多态总结
原创粉丝点击