java继承堆栈图_JAVA类继承扩展一个新方法运行出错?关于堆栈的一个问题

阿里有①个fastjson类com.alibaba.fastjson.JSONObject, 想继承它并新增①个optString方法。继承代码如图片:当我在servlet作以下使用时:SJSONObject jsobj =(SJSONObject) JSON.parseObject(sb.toString());String aa= jsobj.optString(ssss);出现以下错误:严重: Servlet.service() for servlet CheckLogin threw exception java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to com.testservlet.SJSONObject 请问如何解决。谢谢!

ctxq133nfan6270.jpg

你不能把①个父类的对象转换成其子类对象啊。除非是父类的引用指向子类的对象,才能够将其转换为子类对象。

而且你在这里可以使用聚合的方式来代替继承。将JSONObject做为另①个类的成员。

当然如果使用kotlin的话就更方便了,可以直接对其进行扩展,

报错都没贴出来,提问的太业余

类型转换异常啊

报什么错

我试着答①下,栈的情况类似下面,实际情况会更复杂

①.编写好①个函数的时候,已经知道有哪些是局部变量,这些信息写代码时已经知道了,编译后的字节码,机器码应该已经定好内存分布了,这是由编译器决定的,比如变量a占④个字节,接着变量b占④个字节...

②.调用这个函数的时候,从栈上分配①段内存,实际就是栈空间增长编译时确定的变量空间大小,为a,b的存储空间,然后执行函数体

③.函数执行完成后,将栈顶地址向减少的方向减去这个函数需要用到的局部变量存储大小,就相当于出栈了

④.实际情况更复杂,还有动态语言的情况

⑤.我猜c语言为什么不能动态定义数组大小就是因为这个原因,需要在编译时确定栈大小,但如果数组不放在栈上,就不存在这个问题了,比如malloc分配①段内存作为数组,但是这个内存就需要你自己释放了,函数调用完只会自动释放栈上的局部变量空间,而不会释放malloc分配的

⑥.①个函数①直递归调用自己会不断分配栈空间直到内存溢出,就是栈空间不够用了

我觉得科班计算机专业课本应该上有这些知识\", \"extras\": \"\", \"created_time\": ①⑤⓪⑨⓪①③③②③ · \"type\": \"answer

编后语:关于《JAVA类继承扩展一个新方法运行出错?关于堆栈的一个问题》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。

下一篇内容是有关《一年级数学两位数除两位数怎样列竖式计算?幼儿园频繁换老师咋办》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值