标题: 初学者小问题 [打印本页] 作者: 十甫寸 时间: 2013-8-2 00:57 标题: 初学者小问题 int show (int a, int b) {return 0;}
public short show (int a, int b) {return 0;}
为什么下面的函数不可以和上面的函数出现在同一类中,或者子父类中?作者: xuaner0719 时间: 2013-8-2 01:30 本帖最后由 xuaner0719 于 2013-8-2 01:43 编辑
int show (int a, int b) {return 0;}默认的是default
public short show (int a, int b) {return 0;}
同一个类中,重名的函数必须要构成重载,重载的条件:函数名相同,参数列表不同。(参数类型不同,参数个数不同,参数顺序不同)无法构成重载,虚拟机在调用函数时候,函数名相同会根据参数列表来判断,参数列表相同,故会虚拟机无法选择,会出错。
子父类中会继承父类中的方法和属性,当然也是不行的。
public protected default private
同一类 ok ok ok ok
同一包 ok ok ok
子类 ok ok
不同包 ok 作者: 乔小北 时间: 2013-8-2 09:12
在同一类中,2个或2个以上的方法可以有同一个名字,但他们的参数声明必须是不同的,才能构成重载。你的代码不能构成重载条件,所以不能写在同一类中。
如果修饰的元素没有任何访问修饰符,则表示friendly,这种情况不能被子类继承,所以也不能写在父子类中。