本文介绍了oops概念提供封装,继承,覆盖和重载之间的最大代码可重用性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 你好, 任何人都可以告诉我哪个oops概念提供了最大的代码可重用性,因为我不确定Encapsulation,Inheritence,Overriding和Overloading ... ...? 先谢谢, Gobind 解决方案 除了解决方案1之外,我的答案主要在于我对该解决方案的评论。 我想重申一下:问题在于以下意义:它显然假设可以在一个或另一个组合中选择OOP概念,以获得最佳结果。实际情况并非如此。例如,您可以在泛型(非OOP概念,也可用于某些非OOP语言,例如Ada的第一版)和OOP的组合上构建一些设计。然后你真的有选择。 在OOP中只有一个选择:是否使用OOP(同样,不提及接口,多重继承以及委托,这真的给出了选择;让我们假设你有没有这些功能的OOP,只是为了讨论的缘故)。不使用纯OOP语言的OOP可能意味着不同的方法,但是当正式使用类而不以任何方式利用OOP功能时是可能的。怎么样?一个人只能使用静态方法,而不是虚拟方法,甚至不能使用实例非虚方法(在某些语言中,静态方法可以是抽象/虚拟方法,非常自然)。这将是100%相当于拥有旧的结构化语言而没有OOP的一瞥。即使使用继承,实例方法,它也不会使用OOP技术。最后,一些特别愚蠢的开发者甚至使用关键词虚拟,但并没有真正利用虚拟性。这些程序在逻辑上可以等同于删除了虚拟字样的相同程序。我真的看到了这样的事情。 :-( 当真正使用和利用后期绑定时,该技术使用OOP。也可以考虑使用带有或不带抽象/虚拟/覆盖的接口的替代方法OOP。但其他概念不是选择的主题。如果真正利用OOP权力,所有其他概念不是可选的,它们需要支持中心概念。没有任何后期绑定和/或多态,没有,比方说,封装和继承 - 否则就没有什么可以绑定了。 (顺便说一句,实际上可以利用OOP权力的人并不多了解可能性基于接口而不是基类的多态性。坦率地说,我后来得到的很多。) 这些考虑或许说明了OOP教学法的弱点。传统方法倾向于将所提到的概念视为平等,这对那些没有掌握主要思想的人产生了一些幻想。我可以观察到rve,这样的人甚至设法毕业并开始工作,不知道OOP如何工作,但能够告诉我们关于这些概念的正确的话语。这太可悲了。 我忘了解决一件事。 Overriding实际上是一个OOP概念。所谓的重载不是。第二个概念本身不应该有一个单独的名称。这是一个最糟糕和令人困惑的术语之一,误导了整个行业的太多人。 术语非常混乱:它几乎不能被称为超载 ,因为什么都没有加载。它仅仅意味着语法允许完全不同的形式上不相关的方法具有相同的名称。很琐碎的事情。编译器可以通过从调用代码推断出的配置文件来区分它们。或不;然后发出编译错误。 OOP不需要具有这个简单的功能。 -SA hello,can anyone please tell me which oops concept offer maximum code reusability as I'm not sure among Encapsulation, Inheritence, Overriding and Overloading......?Thanks in Advance,Gobind 解决方案 这篇关于oops概念提供封装,继承,覆盖和重载之间的最大代码可重用性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云! 08-20 19:43