1. 理解类的多态性
类的继承发生在多个类之间,而类的多态只发生在同一个类上。在一个类中,可以定义多个同名的方法,只要确定它们的参数个数和类型不同。这种现象称为类的多态。
多态使程序简洁,为程序员带来很大便利。在OOP 中,当程序要实现多个相近的功能时,就给相应的方法起一个共同的名字,用不同的参数代表不同的功能。这样,在使用方法时不论传递什么参数,只要能被程序识别就可以得到确定的结果。
类的多态性体现在方法的重载(overload)上,包括成员方法和构造方法的重载。
2. 方法的重载
方法的重载是指对同名方法的不同使用方式。
1) 程序功能:对不同的数进行排序输出。在IntSort 类中定义2 个同名的方法sort。
2) 编写KY5_1.java 文件,源代码如下。
class IntSort {
public String sort (int a, int b) {
if (a>b)
return a+" "+b;
else
return b+" "+a;
}
public String sort (int a, int b, int c) {
int swap;
if (a<b) {
swap=a;
a=b;
b=swap;
}
if (a<c) {
swap=a;
a=c;
c=swap;
}
if (b<c) {
swap=b;
b=c;
c=swap;
}
return a+" "+b+" "+c;
}
}
public class KY5_1 {
public static void main(String args[])
{
int a=30, b=12, c=40;
IntSort s=new IntSort();
System.out.println("两个数的排序结果:"+s.sort(a,b));
System.out.println("三个数的排序结果:"+s.sort(a,b,c));
}
}
3) 编译KY5_1.java并运行程序
4) 将程序的输出结果记录在实验报告中。
结果如下:
5) 请在实验报告中说明在IntSort 类中出现的下面两个同名的方法各自的功能?
I. public String sort (int a, int b)
答:比较a、b参数,由大到小排序 然后输出排序结果
II. public String sort (int a, int b, int c)
答:比较a、b、c参数,由大到小排序 然后输出排序结果
6) 请在实验报告中指出程序中是哪条语句调用了方法I,哪条语句调用了方法II?
答:System.out.println("两个数的排序结果:"+s.sort(a,b))调用了方法一;
System.out.println("三个数的排序结果:"+s.sort(a,b,c))调用了方法二;