子类重写父类方法,返回类型必须一致 !~!!
class Super {
public Integer getLenght() { return new Integer(4); }
}
public class Sub extends Super {
public Integer getLenght() { return new Integer(5); }
public static void main(String[] args) {
Super sooper = new Super();
Sub sub = new Sub();
System.out.println(sooper.getLenght().toString() + "," +
sub.getLenght().toString() );
}
}
这下就没问题了
子类继承了父类.重写的是方法.注意的就是方法名称.参数个数类型,返回参数的类型.一般就是这些..重写父类的方法没有什么特别的地方.要是有异常了可以帮你分析一下,继承来的只能重写方法体,这是java的规定,记住就行了
Exception in thread "main" java.lang.Error: 无法解析的编译问题:
返回类型与 Super.getLenght() 不兼容
这是编译的错误
主类和父类的方法中他们的方法签名相同,这是不允许的,不是重载,也不是重写,故会出现错误。
Super类中定义了一个getLength方法,而Sub类中对这个方法进行了重写,但是返回值类型不一样,这个程序要报错地.
System.out.println(sooper.getLenght().toString() + "," +
sub.getLenght().toString() );
山方面这一句改为:
System.out.println(String.valueof(sooper.getLenght())+ "," +
String.valueof(sub.getLenght()));
teng