用java中继承和方法重写实现求最大公约数和最小公倍数

来源:互联网 发布:淘宝数据插件 编辑:程序博客网 时间:2024/06/07 09:38

用java中继承和方法重写,实现求最大公约数和最小公倍数


1. 背景


    老师在课上布置了几道java编程题,此为其中之一


2. 题目内容


编写一个类,该类有一个方法public int f(int a,int b),返回a,b的最大公约数。然后编写一个从该类派生的子类,并重写祖先的 f 方法,且返回a,b 的最小公倍数。要求在子类重写父类方法时,首先调用父类的方法f获得最大公约数m,然后再用公式(a*b)/m 获得最小公倍数。最后写一个测试程序,分别调用父类和子类的方法。


3. 具体代码与解释


package Three;/**  * @author Kun Sun * @Date: 2013.10.15 */public class Gcd { // 最大公约数类,取名自英文各首字母(Greatest Common Divisor)public int f(int a,int b){if(a < b){  // 保证a为最大值int temp = a;a = b;b = temp;}while(b > 0){ // 求最大公约数if(a == b){return a;}else{int temp = a%b;a = b;b = temp;}}return a;}}


 

package Three;/** * @author Kun Sun * @Date: 2013.10.15 */public class Lcm extends Gcd{// 最小公倍数类,取名自英文各首字母(Lowest Common Multiple)public int f(int a,int b){ // 方法重写,求最小公倍数int m = super.f(a, b);int result = a*b/m;return result;}}


 




package Three;/** * @author Kun Sun * @Date: 2013.10.15 */public class MainClass { // 用于测试最大公约数类和最小公倍数类/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubGcd gcd = new Gcd();int result1 = gcd.f(12,24);System.out.println(result1);Lcm lcm = new Lcm();int result2 = lcm.f(12,24);System.out.println(result2);}}



4. 测试运行结果截图