11.10练习题

 1.

package england.people;
import american. people. Son;
import japan. people. Grandson;
public class Example5_1{
     public static void main(String args[]) {
     Son son= new Son();
     Grandson grandson = new Grandson( ) ;
     son.height = 180;
     and =".son.hand ="一双大手";
     grandson.height = 155ight = 155;
     grandson.hand = "一双小手";
     grandson.foot="一双小脚";
     String str = son.getHand();
     System.out. printf("儿子:%s,% d\n",str,son.height);
     str = grandson.getHand();
     System. out. printf("孙子:% s,%s,% d\n",str,grandson.foot,grandson.height);
     }
}

3.

class People{
    public double x;
    public void setX(double x){
       this.x=x;
    }
    public double getDoubleX(){
       return x;
    }
}
class Student extends People{
    int x;
    public int getX(){
       //x=20.56;                     //非法,因为子类的x已经是int型,不是double型
       return x;           
    }
}
public class Example5_3{
  public static void main(String args[]) {
      Student stu=new Student();
      stu.x=98;                       //合法,子类对象的x是int型
      System.out.println("对象stu的x的值是:"+stu.getX());
      //stu.x=98.98;                  //非法,因为子类对象的x已经是int型
      stu. setX(98.98);               //子类对象调用继承的方法操作隐藏的double型变量x
      double m= stu.getDoublex();  //子类对象调用继承的方法操作隐藏的 double 型变量x 
      System.out.println("对象 stu隐藏的x的值是:"+m);
  }
}

4.

class A{
     double f(float x,float y) {
         return x+y;
     }
     public int g( int x, intint y){
         return x+y;
     }
}
class B extends A{
     double f(float x,float y){                                    {                                     
         return x*y;                      
     }
}
public class Example5_4 {
     public static void main(String args[]) {
       B b=new B();
       double result= b.f(5,6);           //b调用重写的方法
       System.out.println("调用重写方法得到的结果:" +result);
       intm=b.g(3,5);                     //b调用继承的方法
       System.out.println("调用继承方法得到的结果:"+m);
     }
}

6.

public class Example5_6{
    public static void main(String args[]){
        UniverStudent zhang = new UniverStudent(20111,"张三",false);
        int number = zhang.getNumber();
        String name = zhang. getName();
        boolean marriage = zhang. getIsMarriage( );
        System.out.println(name+"的学号是:"+number);
        if(marriage ==true){
          System.out.println(name +"已婚");
        }
        else{
          System. out. println(name +"未婚");
        }
    }
}

7.

public class Example5_7{
    public static void main(String args[]) {
       Average aver = new Average();
       aver.n=100.5678;
       double result1 = aver. f() ;
       double result2 = aver. g( ) ;
       System. out. println(1n("result1 = "+result1);
       System. out.printlr1n("result2 = "+ result2);
    }
}

9.

public class Example5_9 {
    public static void main(String args[]) {
       People  people = new People() ;
       Anthropoid monkey  = people;            //monkey是people对象的上转型对象
       monkey.crySpeak("I love this game");    //等同于 people调用重写的crySpeak 方法
       //monkey.n=100;                         //非法,因为n是子类新增的成员变量
       //monkey.computer(12,19);               //非法,因为computer()是子类新增的方法
       System.out.println(monkey.m);           //操作隐藏的m,不等同于 people.m
       System. out. println(people.m);         //操作子类的m
       People zhang = (People)monkey;          //把上转型对象强制转化为子类的对象
       zhang. computer(55,33);                 //zhang是子类的对象
       zhang.m = 'T';                          //操作子类声明的成员的变量m
       System.out.println(zhang.m);
    }
}

11.

abstract class GirlFriend { //抽象类,封装了两个行为标准
    abstract void speak() ;
    abstract void cooking() ;
}
class ChinaGirlFriend extends GirlFriend {
    void speak(){
       System.out.println("你好");
}
    void cooking(){
       System.out.println("水煮鱼");
    }
}
class AmericanGirlFriend extends GirlFriend {
     void speak(){
        System.out.println("hello");
     }
     void cooking(){
        System.out. println("roast beef");
     }
}
class Boy{
    GirlFriend friend;
    void setGirlfriend(GirlFriend f){
        friend=f;
    }
    void showGirlFriend(){
       friend.speak();
       friend.cooking();
    }
}
public class Example5_11{
    public static void main(String args[ ]) {
       GirlFriend girl = new ChinaGir1Friend();        //gir1是上转型对象
       Boy boy = new Boy();
       boy. setGirlfriend(gir1);
       boy.showGirlFriend();
       girl = new AmericanGirlFriend();                //gir1是上转型对象
       boy.setGirlfriend(gir1);
       boy.showGirlFriend();
    }
}

13.

public class Example5_13 {
    public static void main(String args[]) {
       Simulator simulator = new Simulator() ;
       simulator. playSound(new Dog()) ;
       simulator.playSound(new Cat());
    }
}

14.

public class Example5_14{
   public static void main(String args[]) {
     AAA a=new AAA() ;
     System.out.println("接口中的常量"+ AAA.M"+AAA.MAX);
     System. out. println("调用on方法(重写的):")
     a.on();
     System.out.println("调用 sum方法(重写的):"+a.sum(12,18));
     System.out.println("调用接口提供的 default 方法"+a.max(12,78);
     Printable.f();
   }
}

课后题:1.

class A{
    public final void f(){
        char cStart = 'a' ,cEnd = 'z' ;
        for(char c = cStart;c<= cEnd;c++) {
        System.out.print(" "+c);
    }
}
}
class B extends A {
    public void g() {
        char cStart = 'α' ,cEnd = 'ω';
        for(char c = cStart;c<= cEnd;c++) {
        System.out.print(""+c);
     }
}
}
public class E{
    public static void main (String args[ ]) {
        B b = new B();
        b.f();
        b.g();
    }
}

2.

class A{
    public int f(int a, int b){
        if(b<a){
        int temp=0;
        temp=a;
        a=b;
        b=temp
        int r=bsa;tr=bx
        0){hile(r!=0)
        b=a;
        a=r;
        r=bs
       =b8a;
    }
    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[ ]) {
               Aa=new A();
               System.out.println("最大公约数:"+a.f(36,24
               a= new B();
               System.out.println("最小公倍数:" + a.f(36,24
           }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值