你知道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入门栏目了解吧。
推荐阅读: