java多态的理解,java多态简单例子

KLQ 2020-06-09 11:39:11 java常见问答 7701

你知道java多态吗?那么java多态的概念是怎样的呢?一起来看一下什么是java多态,以及java多态代码例子吧!希望可以对你有所帮助哦。

一、java多态的概念

多态,和名字相同,就是表示,某一时刻程序对应着多个可能的状态。

面相对象当中,分成了两种多态。

1、编译时多态,主要指的就是方法的重载

2、运行时多态,它主要通过动态绑定来实现。

二、java多态代码实例

下面是一个非常经典的多态实例(java实例):

1、题目

有一个Animal类,它有Cat,和Dog两个子类。

在Animal当中,有个say方法。

在Cat调用这个方法的时,输出小猫喵喵喵。

在Dog调用这个方法的时候,输出小狗汪汪汪。

2、代码实现

父类:Person.java

import java.util.Scanner;
public class Person
{
    public int salary;
    public int allSalary()
    {
        return 0;
    }
    public static void main(String[] args)
    {
        Person p = null;
        for (int n = 0; n < 3; n++)
        {
            @SuppressWarnings("resource")
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个1-3的数字:
1 is Teacher
2 is Scientis
3 is Waiter");
            int i = sc.nextInt();
            //分别指向了不同的子类,输出的结果是不一样的
            if (i == 1)
            {
                p = new Teacher(5000);
                System.out.println(p.allSalary());
            }
            else if (i == 2)
            {
                p = new Scientist(5000);
                System.out.println(p.allSalary());
            }
            else if (i == 3)
            {
                p = new Waiter(5000);
                System.out.println(p.allSalary());
            }
            else
            {
                System.out.println("?
请输入1-3");
            }
        }
    }
}

子类:Scientist .java

public class Scientist extends Person
{
    public Scientist(int salary)
    {
        this.salary = salary;
    }
    public int allSalary()
    {
        int aa = salary * 12 + 36500;
        System.out.print("五五开一年的工资:");
        return aa;
    }
}

Waiter.java

public class Waiter extends Person
{
    public Waiter(int salary)
    {
        this.salary = salary;
    }
    public int allSalary()
    {
        int aa = salary * 12;
        System.out.print("服务员一年的工资:");
        return aa;
    }
}

Teacher .java

public class Teacher extends Person
{
    public Teacher(int salary)
    {
        this.salary = salary;
    }
    public int allSalary()
    {
        int aa = salary * 12 + 3650;
        System.out.print("教师一年的工资:");
        return aa;
    }
}

关于什么是java多态以及多态举例就给大家介绍到这里了,更多相关内容请继续来java入门栏目了解吧。

推荐阅读:

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

什么是多态?怎样使用多态?