java重写与重载的区别和注意事项

QUESTION NO: 3
1. class A {
2. protected int method1(int a, int b) { return 0; }
3. }
Which two are valid in a class that extends class A? (Choose two)
A. public int method1(int a, int b) { return 0; }
B. private int method1(int a, int b) { return 0; }
C. private int method1(int a, long b) { return 0; }
D. public short method1(int a, int b) { return 0; }
E. static protected int method1(int a, int b) { return 0; }

310-035中的题目,标准答案是A,C

 

A不是重载,A是重写!也就是覆盖!
覆盖不能降低原方法的"可见度"

class A {
    protected int method1(int a, int b) { return 0; }
}

class B extends A {
    public int method1(int a, int b) { return 0; }
}

那么B中只有一个method1(int,int)方法!

--------------------------------------------
重载是:
当多个方法具有相同的名字而含有不同的参数时产生
那么对参数不同的调用,实际调用不同的方法
也可以理解为实际上有两个方法,名字同,参数不同!

class A {
    protected int method1(int a, int b) { return 0; }
}

class B extends A {
    private int method1(int a, long b) { return 0; }
}
那么B有method1(int,int)和method1(int,long)两个方法!

因为"是"两个方法,所以其实
class B extends A {
    PUBLIC int method1(int a, long b) { return 0; }
}
也是正确的

-------------------------------------------------------------------------

-------------

注意事项:

覆盖(不知道是不是OVERWRITE)注意
不能降低原方法的"可见度"

重载(不只道是不是OVERLOAD)注意
只有参数不同才能构成重载,"可见度",返回类型不同都不能构成方法的重载

重载不是:
重新写(载)

重载是:
多重(可能)载入 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值