你知道java多态吗?那么java多态的概念是怎样的呢?一起来看一下什么是java多态,以及java多态代码例子吧!希望可以对你有所帮助哦。
一、java多态的概念
多态,和名字相同,就是表示,某一时刻程序对应着多个可能的状态。
在面相对象当中,分成了两种多态。
1、编译时多态,主要指的就是方法的重载。
2、运行时多态,它主要通过动态绑定来实现。
二、java多态代码实例
下面是一个非常经典的多态实例(java实例):
1、题目
有一个Animal类,它有Cat,和Dog两个子类。
在Animal当中,有个say方法。
在Cat调用这个方法的时,输出小猫喵喵喵。
在Dog调用这个方法的时候,输出小狗汪汪汪。
2、代码实现
父类:Person.javaimport 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
{
@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 .javapublic 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.javapublic class Waiter extends Person
{
public Waiter(int salary)
{
this.salary = salary;
}
public int allSalary()
{
int aa = salary * 12;
System.out.print("服务员一年的工资:");
return aa;
}
}
Teacher .javapublic 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入门栏目了解吧。
推荐阅读: