我是一个自学成才的程序员,所以我理解这些概念吗?有人也可以举个例子吗
I'm a self-taught programmer so did i understand these concepts? can someone include example too
所以有人告诉我我是否正确。
封装就是数据隐藏,只允许自己查看
class 中的属性和其他方法私下使用,而您可以在其他 class 中使用这些方法和缩写,
继承是对class的扩展,比如把“superclass”中的一些方法传给“childclass”修改或使用.
多态性与继承是一回事,只是格式不同,就像如果我有一只动物 class,每只动物都有不同的声音,所以从那里我会有这样的东西
动物猫 = new Cat();
覆盖和重载这个我不太确定
Abstract classes 从 super class 获取方法或变量并将这些方法和变量作为“Abstract”传递,以便在子 class 中修改它们并编辑他们。
这有意义吗?还是我误会了什么?
这些东西一起工作。
对象是自给自足的东西,它会跟踪自己的状态。封装强制分离,对象发布其他对象调用的方法,但这些方法负责修改对象的状态。
在使用 classes 的 oo 系统中,class 是用于创建对象的模板。 Subclassing 意味着创建一个新的 class,它是 subclassed class 的更具体版本,其中 subclassed 对象继承 class 指定超类方法和字段的定义classes.
抽象 classes 推迟了一些方法的实现,将它们留给子classes 来实现。如果 superclass 知道在某个特定点必须发生某些事情,但希望将具体发生的事情留给特定对象自行决定,这就是抽象方法的用途。
这里出现了一种模式:对象对自己负责,类型层次结构从大多数 abstract/general 到大多数 concrete/specific。多态性是关于对象的行为在程序运行时根据哪些方法被覆盖来确定。重写意味着子类型有一个更具体的方法版本来代替 superclass 版本。
(重载 otoh 是为了方便 class 具有名称相同但参数不同的方法。)
这样做的结果可能是一个在高层次上处理抽象类型并让对象自己计算出确切细节的系统。这个想法是这样的细节可以限制在 subclasses 并且可以通过创建新的 subclasses 来修改程序而不中断程序的其余部分。无论如何,从理论上讲,请参阅 Wadler 的表达式问题以了解这一切到底是怎么回事。
例如:阅读 Jdk 附带的源代码。 java.lang 和 java.util 包有很多 class 是 OO 设计的例子。
所以有人告诉我我是否正确。
封装就是数据隐藏,只允许自己查看 class 中的属性和其他方法私下使用,而您可以在其他 class 中使用这些方法和缩写,
继承是对class的扩展,比如把“superclass”中的一些方法传给“childclass”修改或使用.
多态性与继承是一回事,只是格式不同,就像如果我有一只动物 class,每只动物都有不同的声音,所以从那里我会有这样的东西
动物猫 = new Cat();
覆盖和重载这个我不太确定
Abstract classes 从 super class 获取方法或变量并将这些方法和变量作为“Abstract”传递,以便在子 class 中修改它们并编辑他们。
这有意义吗?还是我误会了什么?
这些东西一起工作。
对象是自给自足的东西,它会跟踪自己的状态。封装强制分离,对象发布其他对象调用的方法,但这些方法负责修改对象的状态。
在使用 classes 的 oo 系统中,class 是用于创建对象的模板。 Subclassing 意味着创建一个新的 class,它是 subclassed class 的更具体版本,其中 subclassed 对象继承 class 指定超类方法和字段的定义classes.
抽象 classes 推迟了一些方法的实现,将它们留给子classes 来实现。如果 superclass 知道在某个特定点必须发生某些事情,但希望将具体发生的事情留给特定对象自行决定,这就是抽象方法的用途。
这里出现了一种模式:对象对自己负责,类型层次结构从大多数 abstract/general 到大多数 concrete/specific。多态性是关于对象的行为在程序运行时根据哪些方法被覆盖来确定。重写意味着子类型有一个更具体的方法版本来代替 superclass 版本。
(重载 otoh 是为了方便 class 具有名称相同但参数不同的方法。)
这样做的结果可能是一个在高层次上处理抽象类型并让对象自己计算出确切细节的系统。这个想法是这样的细节可以限制在 subclasses 并且可以通过创建新的 subclasses 来修改程序而不中断程序的其余部分。无论如何,从理论上讲,请参阅 Wadler 的表达式问题以了解这一切到底是怎么回事。
例如:阅读 Jdk 附带的源代码。 java.lang 和 java.util 包有很多 class 是 OO 设计的例子。