关于java重写的一道笔试题,答案是什么?

class Book{

  protected int getPrice(){

  return 30;

  }

  }

  public class ComputerBook extends Book{

  }

  A) protected float getPrice(){}

  B) protected int getPrice(int page){}

  C) int getPrice(){}

  D) public int getPrice(){return 10;}

重写(Overriding)

(1)若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。

如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。


(2)子类函数的访问修饰权限不能少于父类的;

很显然:AB不满足(1)中的要求 C不满足是因为其没有写访问权限修饰符----也就是我们所说的Friendly.而在访问权限修饰符中从宽到严依次为:public protected friendly(没写的时候) private  由于(2)的约束.此时的C选项显然不对.

答案是D.

追问

A,B可不可以认为是子类对父类方法的重载?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-31
方法的重写:
1、在子类中可以根据需要对从基类中继承来的方法进行重写。
2、重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。
3、重写方法不能使用比被重写的方法更严格的访问权限。
故选D。
第2个回答  2017-05-31
选D 其他都没有返回值
第3个回答  2017-05-31
看错了,是B