黑马程序员技术交流社区

标题: 关于继承方法问题 [打印本页]

作者: Teemo_Mann    时间: 2014-4-15 09:23
标题: 关于继承方法问题
class A {
. protected int method1(int a, int b) { return 0; }}
下列哪些可以在继承于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 classB extendsA{...}
帮大家回顾一下知识点
作者: 虎牛龙马    时间: 2014-4-15 10:09
A是肯定可以的,B,肯定不行!因为子类继承父类,子类成员的权限不能小于父类成员的;C,可以,因为参数列表不同,此方法是重载了父类方法;D不确定,因为方法的重写跟返回值类型没关系。不知道后面的return语句写成这样return (short)0行不行; E,不可以,因为父类的方法保存在堆内存,但是子类的方法却在静态方法块,所以覆盖不了父类方法。
作者: 曹冬明    时间: 2014-4-15 10:14
楼上的C答案是不是想说是重载而不是覆盖,重写和覆盖不是一回事么
作者: Teemo_Mann    时间: 2014-4-15 12:11
嗯都答对了,结贴




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2