-6

所以有人告诉我我是否正确。

封装是数据隐藏,只允许你自己查看一个类中的属性和其他方法,而你可以在其他类中使用这些方法和缩写,

继承就是扩展一个类,比如把“超类”中的一些方法传给“子类”,然后在那里修改或使用。

多态性与继承是一样的,只是格式不同,就像我有一个动物类,每只动物都有不同的声音,所以从那里我会有这样的东西

动物猫=新猫();

覆盖和重载我不确定这个

抽象类从超类中获取方法或变量,并将这些方法和变量作为“抽象”传递,以便在子类中修改和编辑它们。

那有意义吗?还是我误解了什么?

4

1 回答 1

0

这些东西都在一起工作。

对象是自给自足的,它跟踪自己的状态。封装强制分离,对象发布其他对象调用的方法,但这些方法负责修改对象的状态。

在使用类的 oo 系统中,类是创建对象的模板。子类化意味着创建一个新类,它是子类的更具体版本,其中子类对象继承了指定超类的方法和字段的类定义。

抽象类推迟了一些方法的实现,把它们留给子类来实现。如果超类知道在某个特定点必须发生某些事情,但希望将发生的确切情况留给特定对象自行决定,那么这就是抽象方法的用途。

这里出现了一种模式:对象对自己负责,以及从最抽象/一般到最具体/具体的类型层次结构。多态性是关于在程序运行时根据覆盖哪些方法来确定对象的行为。覆盖意味着子类型具有替代超类版本的更具体的方法版本。

(重载 otoh 是为了方便一个类具有同名但不同参数的方法。)

这样做的结果可以是一个系统,它在高层次上处理抽象类型,并让对象本身计算出确切的细节。想法是这样可以将细节限制在子类中,并且可以通过创建新的子类来修改程序,而不会破坏程序的其余部分。无论如何,理论上,请参阅 Wadler 的表达问题,了解这一切都将走向何方。

例如:阅读 Jdk 附带的源代码。包 java.lang 和 java.util 有很多类是 OO 设计的例子。

于 2017-05-08T00:00:14.457 回答