首页 > 编程知识 正文

Java中父类引用指向子类对象好处

时间:2023-05-05 08:08:40 阅读:181584 作者:3836

比如对于HashMap与Map的理解:

HashMap是Map接口的典型实现类,Map是接口,是键值对的集合。

建议在实现接口的方法中使用Map。 例如,MapString,Object parameters=new HashMap (;

不推荐。 HashMapString,Object parameters=new HashMap (;

第一个更灵活,第二个就这样写死了。 如果要更改其他Map实现类,则必须重写。 在接口中实现时,“第一个”只需要替换后面的实现类。

http://www.Sina.com/http://www.Sina.com /

需要实现喂猫和喂狗两种方法时

如果EED(Catcat )…} feed (Dogdog )…}cat、dog都是Animal的子类,就可以写

feed (animal animal (…) animal dog1=newdog ); //父类引用是子类对象Animal cat1=newCat (; EED(dog1; EED(cat1; 这是面向接口的编程,不需要在意调用方调用的是哪个对象,只对接口编程即可,降低了调用方对调用方完全透明的程序的结合性

父类引用指向子类对象的好处:可以随时替换子类。 这意味着您可以随时替换具体实现,而无需修改其他实现。

好处一:降低代码耦合度,让程序员关注业务的时候,更加关注父类能做什么,而不去关心若干个子类具体是怎么做的

例如,最基本的方法之一equals,他是Object类的一种方法,完整的格式是publicbooleanequals(objectobj )

此处的参数类型使用Object,因为Object是所有类的父类,所以调用此方法时可以将此参数传递给Object的子类对象,即任何对象

如果没有多态性这个方法,就不能这样写。 参数只能写一个具体的类。 这个方法的适用范围只有这个类。 请参阅。 请参阅。

让你更关注父类能做什么,而不去关心子类是具体怎么做的

假设您有Animal的父类和Dog,Cat的子类

如果在代码里,提前申请

私有动画; 这样的好处是什么呢? an的实际类型可以在运行时具体确定,其可以是Dog Cat或Animal。 因为你会写:

an=new Animal (; 也可以写:

an=new Dog (; 或者

an=new Cat () ); 如果你从一开始就声称是Dog an的话; 你的an只有Dog会导致代码不够灵活,扩展时扩展变得不方便。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。