java面向对象程序设计第三版第五章继承与接口课后题

第一题: 编写类A,该类创建的对象包含一个方法f输出英文字母表,再编写一个A类的子类B,要求必须继承A类的方法f(不允许重写),子类创建的对象不仅可以调用方法f输出英文字线表,而且调用子类新增的方法g输出希腊字母表(α~ω)

class A {
    void f() {
        char start = 'a', end = 'z';
        for (char x = start; x <= end; x++)
            System.out.println(x);

    }
}
    class B extends A{
        void g(){
            char start='α', end='ω';
            for(char x=start;x<=end;x++)
                System.out.println(x);
        }
    }
    public class Test{
        public static void mian(String args[]) {
            B b = new B();
            b.f();
            b.g();
        }
    }

第二题:写一个类,该类有一个方法public int f(int a,int b),返回a,b的最大公约数。然后编写一个从该类派生的子类,并重写祖先的 f 方法,且返回a,b 的最小公倍数。要求在子类重写方法的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将乘积(a*b)/m返回。在应用程序的主类中创建一个父类的对象,例如a,该对象a调用方法f返回最大公约数,然后a作为子类对象的上转型对象调用方法f返回最小公倍数。
 

class A{
    public int f(int a,int b){
        if(b<a){
            int temp;
            temp=a;
            a=b;
            b=temp;
        }
        int r=b%a;
        while(r!=0){
            b=a;
            a=r;
            r=b%a;
        }
        return a;
    }
}
class B extends A{
    public int f(int a,int b){
        int division = super.f(a,b);
        return a*b/division;
    }
}
public class E{
    public static void main(String args[]){
        A a=new A();
        System.out.println(a.f(36,24));
        a = new B();
        System.out.println(a.f(36,24));
    }
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值