java – 如何使用多态而不是instanceof? (为什么?)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何使用多态而不是instanceof? (为什么?),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1271字,纯文字阅读大概需要2分钟。
内容图文
![java – 如何使用多态而不是instanceof? (为什么?)](/upload/InfoBanner/zyjiaocheng/710/7c8294eb7383487686d4a389f194f7b6.jpg)
如果我们采用以下代码:
Shape p1 = new Square();
Square c1;
if(p1 instanceof Square) {
c1 = (Square) p1;
}
优先选择多态到instanceof是什么意思,顺便说一句,为什么它更好?
编辑:我理解多态是什么;我缺少的是如何使用它而不是instanceof.
解决方法:
if … else …(或switch,或者访问者)和多态之间的主要区别是模块性.有一种所谓的开放闭合原则,它基本上意味着,当您向现有程序添加新功能时,您在现有代码中所做的更改越少越好(因为每次更改都需要一些工作,并且可能会引入错误).那么让我们比较一下变化的数量:
>添加一个新方法(例如你有paint()和getArea(),让我们添加getCircumference()):使用if-else解决方案你只需要改变一个文件 – 包含新方法的文件.使用多态,您必须更改Shape类的所有实现.
>添加一种新的Shape(你有Square,Circle – 让我们添加Triangle):使用if-else解决方案,你必须使用if-else查看所有现有的类,并为Triangle添加一个新的if分支;使用多态性,您只需要添加一个新类并在其中实现所有必需的方法.
所以,如果……其他……或多态:它取决于模块性.如果您希望以后添加许多新子类,请使用多态;如果您希望以后添加许多新方法,请使用if … else …,并在类中只放置最基本的方法,如访问器.或者换句话说:当你期望有很多if … else …分支时,你应该使用多态,当你期望很少这样的分支时,只要留下来,如果……其他……
另外:当你期望很少… else …分支,但在很多地方,你应该考虑封装这个if … else … with Visitor模式或只是为每个分支制作一个单独的case的枚举.
内容总结
以上是互联网集市为您收集整理的java – 如何使用多态而不是instanceof? (为什么?)全部内容,希望文章能够帮你解决java – 如何使用多态而不是instanceof? (为什么?)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。