oop - 抽象与抽象类

标签 oop

根据 http://www.cs.cornell.edu/courses/cs211/2006sp/Lectures/L08-abstraction/08_abstraction.html

抽象有两种形式。一是函数抽象,二是数据抽象。但是抽象类在哪里适合呢?据我所知,抽象类是一个完全不同的概念,尽管名称暗示它与 OOP 原则有关。

有人可以对此有所了解吗?

最佳答案

这些是非常不同的概念。

抽象类似于黑盒的概念。输入进去,黑盒做点什么,输出出来。黑匣子里发生了什么并不重要,你只需要知道它是有效的。一个真实的例子是java的散列函数,用户只需要知道它对输入值进行散列,对于用户如何散列数字并不重要。黑匣子是抽象的。关键是您不必知道它是如何工作的,只要知道它就知道。

抽象类(至少在 Java 中)是接口(interface)和完整 OOP 类的混合体。接口(interface)定义了任何扩展类必须具有的方法,它在代码中约定它将正确实现接口(interface)并确保一切都按预期工作。抽象类具有这些空方法(协议(protocol)),并且还具有可以调用的完全实现的方法。

关于oop - 抽象与抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12593917/

相关文章:

php - 有没有办法禁止从类的实例向类添加属性?

python - 如何在 python 中使用原始方法扩展继承的方法

C++ 友元函数不起作用

perl - 使用 MooseX::Declare 关闭内联构造函数

c# - 如何停止并确保 OOP 代码正常工作?

Python设计题

java - 没有catch的嵌套try if有什么用吗?

c++ - 实现 "window"系统和 "no deletion of self"规则

java - 扫描仪的功能。关闭扫描仪会引起问题

java - 类继承