Java在父类中如何创建子类对象?

Java在父类中如何创建子类对象?,第1张

你好,很高兴回答你的问题。

可以进行如下修改,将breed的实现移到抽象父类Animal中,略做修改,修改后代码如下

public Animal breed(){

Animal ret =null

if(isBreedable() &&Math.random()<getValue()){

ret=getAnimal()

}

return ret

}

父类Animal中增加如下两个抽象方法:

public abstract double getValue()

public abstract Animal getAnimal()

在Fox中不再需要实现breed,实现新定义的两个方法:

public abstract double getValue(){

return 0.5

}

public abstract Animal getAnimal(){

return new Fox()

}

在Rabbit类中类似处理:

public abstract double getValue(){

return 0.12

}

public abstract Animal getAnimal(){

return new Rabbit()

}

如果有帮助到你,请点击采纳。

我解答的大部分是软件开发新人遇到的问题,如果有兴趣可以关注我。

楼主问的是你解决问题的那段代码的意义吧,楼上的回答实在是让人不知所云啊。

A是父类。B和C继承A。

A b = new B()

A c = new C()

这个就不用我啰嗦了吧,Java的多态。

String str = "B"

A a = (A) Class.forName(str).newInstance()

我来解释一下它吧,这个技术叫反射,主要意思就是在编译的时候不指定要创建哪个的对象,而在执行过程中才去指定。不明白请百度百科JAVA反射机制。Class.forName(str)加载类名叫str的那个类,newInstance()创建该类的对象,因为Java并不知道实例化的类是谁,所以返回对象是Object对象,这就需要造型(A) Class.forName(str).newInstance()这样就返回了A类对象,楼主明白否?


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11740432.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存