Java编程中在子类重载方法中调用父类中该方法时,该方法包含递归时出现的调用错误
来源:互联网 发布:gzip linux 编辑:程序博客网 时间:2024/05/29 04:26
下面是Java学习过程中的一道练习题,求两个数的最大公约数和最小公倍数,我编写的代码如下:
<span style="font-family: Arial, Helvetica, sans-serif;">package Test;</span>
/** * 计算最大公约数和最小公倍数 * @author Yifan * @version 1.0 */class Divisor{/** * 求最大公约数 * @param a * @param b 所求的两个数字 * @return 返回a和b的最大公约数 */int f(int a,int b){int temp;if(a==b)return a;else if(a<b){temp=a;a=b;b=temp;}temp=a%b;if(temp==0)return b;else{return f(b,temp);}}}//辗转相除法求最大公约数class Multiple extends Divisor{/** * 调用最大公约数的算法,计算最小公倍数 * @return 返回最小公倍数 */int f(int a,int b){/*int c,d;d = a*b;c = super.f(a,b);return d/c;*/ //该方法中的父类是个递归方法,在递归时会调用子类重写的方法Divisor Div = new Divisor();int c = Div.f(a, b);return (a*b)/c;}}//求最小公倍数public class Sum {/** * 主方法输出a和b的最大公约数和最小公倍数 * @param args 形参变量 */public static void main(String[] args){int a,b,divisor,multiple;a = 600;b = 1515;//待求的两个数Divisor Di = new Divisor();Multiple Mu = new Multiple();divisor = Di.f(a,b);multiple = Mu.f(a,b);System.out.println("最大公约数和最小公倍数分别是:"+divisor+","+multiple);}}可以看到,Multiple类继承了Divisor类,重写并在重写的方法中调用父类的该递归方法时,导致父类在递归时并不是调用自己,而是调用子类的重载方法,导致计算最小公倍数计算错误。 目前解决的方法,我只想到以上代码中的一种方法,即在子类中创建父类的实例,用实例来调用父类的递归方法。欢迎大家提供其他解决该问题的好办法!!!
1 0
- Java编程中在子类重载方法中调用父类中该方法时,该方法包含递归时出现的调用错误
- Java中方法的传值、重载、递归调用
- 子类中方法与父类中形成重写关系,可以在构造方法中用super来调用父类中的该方法
- 在指定方法中抛出异常,在调用该方法的地方处理异常
- 解决Popupwindowon在onCreate方法中调用出现的错误
- PL/SQL小技巧一个:在子类中怎么调用父类被重载的方法
- PL/SQL小技巧一个:在子类中怎么调用父类被重载的方法
- 获取调用该方法的上一个方法
- //如果要在子类中调用父类的方法,则应在子类的构造方法中调用
- 创建子类对象时,父类构造函数中调用被子类重写的方法为什么调用的是子类的方法,而被子类重载的方法不会调用?
- 创建子类对象时,父类构造函数中调用被子类重写的方法为什么调用的是子类的方法,而被子类重载的方法不会调用?
- Java在静态方法中直接调用了动态方法出现错误
- 方法中的变量在调用该方法前在内存中并不存在
- java 父构造器中调用子类重写的方法
- java中子类调用父类的构造方法
- 错误记录--Java中子类继承父类必须调用父类的构造方法?
- 在父类中调用子类的方法。
- 调用方法中如果方法中的形式参数是应用类型(类名)时,该如何调用
- HDU 1015 Safecracker (dfs)
- HDU 5879 Cure
- 链表的相关函数
- 安装openstack前的准备
- c/c++ 各个类型所占的字节数
- Java编程中在子类重载方法中调用父类中该方法时,该方法包含递归时出现的调用错误
- Linux系统tput命令用法实例详解
- Codeforces-507B-Amr and Pins
- 深入理解Java的接口和抽象类
- 147. Insertion Sort List (python)
- 迅雷笔试之-纸牌游戏有牛无牛
- 基础总结篇之九:Intent应用详解
- 第一篇博客
- 从一个文件中读取到的内容写到另一个文件中(read,write,open)