黑马程序员技术交流社区
标题:
关于奇葩的方法调用,我也不想研究这样的,看书看到的
[打印本页]
作者:
guohuaxin
时间:
2015-7-31 23:32
标题:
关于奇葩的方法调用,我也不想研究这样的,看书看到的
class Base
{
public Base()
{
test(); //A
}
public void test() //①号test方法
{
System.out.println("将被子类重写的方法");
}
}
public class Sub extends Base
{
private String name;
public void test() //②号test方法
{
System.out.println("子类重写父类的方法,"
+ "其name字符串长度" +name.length()); //B
}
public static void main(String[] args)
{
//下面代码会引发空指针异常
Sub s = new Sub();
}
}
程序会报错。但是把B处的+name.length()去掉则正常运行,请问是哪个对象调用了②号test方法??
作者:
wudigod12
时间:
2015-7-31 23:47
Base调用了Sub类的test方法
java无法调用被遮盖的基类方法,你要是真想调用,不能用重写,用重载,也就是说在Sub类的test方法上加个参数.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2