根据http://www.cs.cornell.edu/courses/cs211/2006sp/Lectures/L08-abstraction/08_abstraction.html http://www.cs.cornell.edu/courses/cs211/2006sp/Lectures/L08-abstraction/08_abstraction.html
抽象有两种风格。一是函数抽象,二是数据抽象。但是抽象类适合在哪里呢?据我所知,抽象类是一个完全不同的概念,尽管它的名字表明它与 OOP 原则有关。
有人可以解释一下吗?
这些是非常不同的概念。
抽象类似于黑匣子的概念。输入进入,黑匣子做一些事情,输出出来。黑匣子里发生什么并不重要,你只需要知道它有效就可以了。现实生活中的一个例子是java的哈希函数,用户只需要知道它对输入值进行哈希处理,用户并不关心数字如何哈希。黑匣子是抽象的。重点是你不必知道它是如何工作的,只要知道它是如何工作的就可以了。
抽象类(至少在 Java 中)是接口和完整 OOP 类之间的混合体。接口定义任何扩展类都必须具有的方法,它在代码中达成一致,它将正确实现接口并确保一切都按预期工作。抽象类具有这些空方法(协议),并且还具有可以调用的完全实现的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)