java 多态实例代码

时间:2022-11-25 15:51:35

多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。

多态性是对象多种表现形式的体现,比如:

在现实中,我们按下F1键这个动作:

如果当前在Flash界面下弹出的就是AS 3的帮助文档
如果当前在Word下弹出的就是Word帮助
在Windows下弹出的就是Windows帮助和支持

多态存在的三个必要条件

继承
重写
父类引用指向子类对象

java" id="highlighter_723913">
?
1
Parent p = new Child();

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

例题

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package Wangyi;
class Base
{
    public void method()
      {
        System.out.println("Base");
    }
}
class Son extends Base
{
    public void method()
      {
        System.out.println("Son");
    }
    public void methodB()
      {
        System.out.println("SonB");
    }
}
public class Test01
{
    public static void main(String[] args)
      {
        Base base = new Son();
        base.method();
        base.methodB();
    }
}

问这个程序的输出结果。(D)

?
1
2
3
4
5
6
7
8
9
A. Base SonB
B. Son SonB
C. Base Son SonB
D.编译不通过
解释:
Base base=new Son(); 是多态的表示形式。父类对象调用了子类创建了Son对象。
base调用的method()方法就是调用了子类重写的method()方法。
而此时base还是属于Base对象,base调用methodB()时Base对象里没有这个方法,所以编译不通过。
要想调用的话需要先通过SON son=(SON)base;强制转换,然后用son.methodB()调用。

总结

以上就是本文关于java 多态实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

原文链接:http://blog.csdn.net/jdliyao/article/details/78947666