美文网首页
5."两同两小一大"原则

5."两同两小一大"原则

作者: 文茶君 | 来源:发表于2019-11-21 11:33 被阅读0次

java中“两同两小一大"原则是指重写原则。

方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型,
子类抛出异常小于等于父类方法抛出异常,
子类访问权限大于等于父类方法访问权限

关于这个问题我是因为做这道题所引发的

链接:https://www.nowcoder.com/questionTerminal/3f4af0f48392470c9493493741be0897
来源:牛客网

对于如下代码段

class A{
public A foo(){return this;}
}
class B extends A{
public A foo(){
return this;
}
}
class C extends B
{
——————这里应该填什么
}

可以放入到横线位置,使程序正确编译运行,而且不产生错误的选项是( )

  • public void foo(){}
  • public int foo(){return 1;}
  • public A foo(B b){return b;}
  • public A foo(){return A;}

C

重写 要求两同两小一大原则, 方法名相同,参数类型相同,子类返回类型小于等于父类方法返回类型, 子类抛出异常小于等于父类方法抛出异常, 子类访问权限大于等于父类方法访问权限。[注意:这里的返回类型必须要在有继承关系的前提下比较]
重载 方法名必须相同,参数类型必须不同,包括但不限于一项,参数数目,参数类型,参数顺序
再来说说这道题 A B 都是方法名和参数相同,是重写,但是返回类型没与父类返回类型有继承关系,错误 D 返回一个类错误 c的参数类型与父类不同,所以不是重写,可以理解为广义上的重载访问权限小于父类,都会显示错误
虽然题目没点明一定要重载或者重写,但是当你的方法名与参数类型与父类相同时,已经是重写了,这时候如果返回类型或者异常类型比父类大,或者访问权限比父类小都会编译错误

ABD参数类型相同,算重写
C算重载

D选项的A没有定义,所以报错了!
在继承中也可能会在子类覆盖父类中的方法,在覆盖要注意以下的几点:
1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
4、被覆盖的方法不能为 private ,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。

相关文章

  • 5."两同两小一大"原则

    java中“两同两小一大"原则是指重写原则。 方法名相同,参数类型相同子类返回类型小于等于父类方法返回类型,子类抛...

  • 面向对象

    1:重写的两同两小一大原则 两同:方法名相同、参数列表相同 两小:返回值类型为基本类型时,子类方法的返回值必须和父...

  • 继承关系中的方法覆写

    方法覆写的原则(一同两小一大) 一同:方法签名必须相同 两小:子类方法声明的返回值类型是和父类方法的返回值相同或者...

  • 2.方法的重写(override)两同两小一大原则

    总结来说为:方法名相同,参数类型相同子类返回类型等于父类方法返回类型,子类抛出异常小于等于父类方法抛出异常,子类访...

  • 静态、重写、构造方法、三元操作符

    非静态变量不能够被静态方法引用 方法重写:两同两小一大原则 方法头由 ( 修饰符,返回值,方法名,定义域修饰符(i...

  • 两在两同

    2021年7月22日,中共江苏省委发出“中共江苏省委关于响应党中央号召在全省党员干部中开展“两在两同”建新功行动的...

  • 两大障碍(摘自原则)

    影响合理决策的两个最大的障碍是你的“自我意识”和“思维盲点"。 这两个障碍让你难以客观的看到你和你所处环境的真相。...

  • 两心同

    朗月高照,独倚危楼,望不见长江流。只剩相思人,对月寄愁。 月藏云后,欲雨蒙蒙,不解相思之苦。浓墨画满天,怎敢祈求。...

  • 高效两原则

    2020-05-27 人和人的生活太有意思了。有人一直奔波于路上,有人只要一个麦克风,有人只要一部手机,一台电脑,...

  • override& overload

    方法重写应遵循“三同一小一大”原则: “三同”:即方法名相同,形参列表相同,返回值类型相同; “一小”:子类方法声...

网友评论

      本文标题:5."两同两小一大"原则

      本文链接:https://www.haomeiwen.com/subject/ypdhictx.html