加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 将超类的对象转换为子类 – 下拉式

发布时间:2020-12-14 05:33:53 所属栏目:Java 来源:网络整理
导读:我知道铸造真的只能从一个子类到一个超类(向上铸造),但这个例子说明了我想做的事情. Class Super {}Class Sub extends Super {}Super super = new Super();Sub sub = (Sub)super; 我相信这被称为“下”铸造,这是不允许的… 创建类型为Sub的对象的最佳方法是
我知道铸造真的只能从一个子类到一个超类(向上铸造),但这个例子说明了我想做的事情.
Class Super {}
Class Sub extends Super {}

Super super = new Super();
Sub sub = (Sub)super;

我相信这被称为“下”铸造,这是不允许的…

创建类型为Sub的对象的最佳方法是给出一个类型为Super的对象.

编辑:

这就是问题 – 将动物转化为猫的最佳方式是什么?

答案?从基本类型的动物开始,并将属性复制到猫.添加毛皮和尾巴等.基本上是一个复制构造函数.这是正确的答案(还是一个很好的答案)?

其他编辑:

我认为我的问题很清楚,但也许是一般的.要求“最好”的方式做某事往往会给出很多不同的回应.我意识到最好的方式可以在不同的情况下有所不同.

我不是在寻找有关Java或OO基础知识的教程.只是钓鱼的意见,所以我可以解决这个问题,因为我已经概述了使用最佳做法.

解决方法

猫是动物.

如果我给你一只动物(不必是猫),那么你怎么把它转换成一只猫呢?

编辑:

有办法做几乎任何事情.大多数时候,你不应该.我相信更好的设计将不再需要倒车.但是你可以:

>在Super中有一个构造函数,它以Sub为参数.
>实施一个Super的工厂,并具有一个Sub作为参数的方法.

我建议你扩大你的问题,告诉我们你需要什么,因为我真的认为一个更优雅的解决方案存在.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读