脚本宝典收集整理的这篇文章主要介绍了java继承的一个小问题,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
需求如下:
原来有个类,其中的每个方法实现都返回该类本身。
public class AClass { PRivate String str=""; public AClass addString(String str) { this.str = str; return this; } public String getString() { return str; } }
这样就支持链式调用:
AClass a = new AClass(); a.addString().addXXX().addyyY()
现在有一个新的类B想要继承A类的全部方法,同时新增一些方法,如下。
public class BClass extends AClass { private int num = 0; public BClass addInt(int num) { this.num = num; return this; } public int getInt() { return num; } }
但是无奈类A每个返回的是A类,因此,这样声明:
AClass b = new BClass(); b.addInt(3); //报错 b.addString("test");
将B对象指向A,但A中没有addInt()
方法,因此出错。应该改为:
BClass b = new BClass(); b.addInt(3); b.addString("test");
但这么一来就对链式调用的支持很微妙,即:
BClass b = new BClass(); b.addInt(3).addString("test"); //正确 b.addString("test").addInt(3); //错误
以上是脚本宝典为你收集整理的java继承的一个小问题全部内容,希望文章能够帮你解决java继承的一个小问题所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。