(一)类的多态性练习

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)  

答:比较ab参数,由大到小排序 然后输出排序结果

 

II. public String sort (int a, int b, int c)

答:比较abc参数,由大到小排序 然后输出排序结果

 

6) 请在实验报告中指出程序中是哪条语句调用了方法I,哪条语句调用了方法II

答:System.out.println("两个数的排序结果:"+s.sort(a,b))调用了方法一;

System.out.println("三个数的排序结果:"+s.sort(a,b,c))调用了方法二;

猜你喜欢

转载自blog.csdn.net/PD137/article/details/80783894