java继承的一个小问题

发布时间:2019-11-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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,请注明来意。