java多态的内容包含哪些?详细实例展示

大家都知道,java的学习是一个漫长的积累过程。今天就来为大家介绍一下,java多态的内容,以及详细地展示一个实例。

首先,我们需要了解它的概念。多态是同一个行为具有多个不同表现形式或形态的能力。它就是同一个接口,使用不同的实例而执行不同操作,如图所示:

java多态的内容

同样地,多态性是对象多种表现形式的体现。

在现实中,当我们按下 F1 键这个动作时,如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows 帮助和支持。我们可以得出一个结论,同一个事件发生在不同的对象上会产生不同的结果。

那么,多态有哪些优点呢?

它可以有效地消除类型之间的耦合关系,并且它具有可替换性,可扩充性,同时具备接口性和灵活性以及简化性。它也可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。

同时,它的存在必须满足三个条件,也就是继承,重写和父类引用指向子类对象。举一个例子:

Parent p = new Child();

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

下面为大家展示一个java多态的实例:

public class Test
{
    public static void main(String[] args)
    {
        show(new Cat()); // 以 Cat 对象调用 show 方法
        show(new Dog()); // 以 Dog 对象调用 show 方法
        Animal a = new Cat(); // 向上转型  
        a.eat(); // 调用的是 Cat 的 eat
        Cat c = (Cat) a; // 向下转型  
        c.work(); // 调用的是 Cat 的 work
    }
    public static void show(Animal a)
    {
        a.eat();
        // 类型判断
        if (a instanceof Cat)
        { // 猫做的事情 
            Cat c = (Cat) a;
            c.work();
        }
        else if (a instanceof Dog)
        { // 狗做的事情 
            Dog c = (Dog) a;
            c.work();
        }
    }
}
abstract class Animal
{
    abstract void eat();
}
class Cat extends Animal
{
    public void eat()
    {
        System.out.println("吃鱼");
    }
    public void work()
    {
        System.out.println("抓老鼠");
    }
}
class Dog extends Animal
{
    public void eat()
    {
        System.out.println("吃骨头");
    }
    public void work()
    {
        System.out.println("看家");
    }
}

然后可以得到的结果就是:

吃鱼
抓老鼠
吃骨头
看家
吃鱼
抓老鼠

总而言之,java多态的掌握是十分重要的。想要了解更多java基础,敬请关注奇Q 工具网。

推荐阅读:

java继承多态是什么意思?java封装继承多态的例子

java有关多态的例题分享,java多态面试题

java中实现多态的机制是什么? java什么是多态?