class A {
protected int method1(int a, int b) { return 0; }
}
Public class B extends A{} 问下面哪两个方法在B中是有效的?为什么?
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; }
还有总是弄不清public\ priivate\ static\关于方法和继承方面的区别 ,搞清楚过段时间就忘,有没有哪位高手的总结贴出来给小弟看一下。作者: 梁耀今 时间: 2013-3-8 14:39 本帖最后由 梁耀今 于 2013-3-8 17:11 编辑
AC正确。测试过了。只有AC对我补充下
在同一个包中 父类中private修饰的是不会被子类继承的,缺省的和protected以及public修饰的都可以被子类继承
不在同一个包中时父类中被private,和缺省的修饰的都不会被子类继承,剩下的两个可以被继承。
首先可以确定对的是
A是对的,
楼上哥们说了:子类重写父类方法的要求:子类方法的访问权限大于或等于父类方法的访问权限,方法名相同, 参数列表以及返回值类型必须保证一模一样才能实现重写。访问修饰访问权限的大小是:private(当前类访问权限)<default(同一个包中)<protect(同一个包中和不同包中的子类)<public(全局范围),
在看参数列别,参数列列表和A一样的通通不对,楼上哥们说C错,我认为是对的
C. private int method1(int a, long b) { return 0; } 是B的私有方法,它与A. public int method1(int a, int b) { return 0; }是重载,参数列表不同吧作者: 谢冬 时间: 2013-3-8 21:35