为什么要在 OOP 中使用“protected”?

问题描述 投票:0回答:2

我有一个困扰我很久的问题。如您所知,有一些封装方法,如受保护的、私有的或公共的。但问题是,为什么我们使用 protected 或者我们保护这些类免受什么或谁的影响?基本上为什么他们需要受到保护? 我了解到,当我们不想从其他类访问该对象时,我们会使用 private,但这样做有什么害处呢?如果其他类访问该对象会发生什么?

请赐教

我真的不知道

oop encapsulation
2个回答
0
投票

你必须把整个事情想象成相应类的接口。公开发布来自外部的接口。 private 关闭接口,方法和成员变量只能在类内使用。使用 Protected,您可以在继承结构中保持类开放,但对外部访问关闭它。

为什么要这样做? 保护您的软件逻辑。当您开发软件并进行抽象时,为了不违反整体逻辑,保护某些方法和变量不被修改是有意义的。另一方面,您可以显式打开方法以供从外部访问。因为此时需要它。


0
投票

将其视为访问级别。

正如您所指出的,Private 用于保护对象免受外部访问。您还必须了解 Public 关键字,它基本上允许不受任何限制地访问外部类的所有成员。

但问题是 Private 限制太多,而 Public 在允许访问的方式上过于开放。

如果我们有一个位于中间某处的关键字,那会很好吗?这就是受保护的地方。

受保护的成员只能被类本身或派生类访问。

回到你的最后一个问题:访问这些对象有什么危害?

主要原因,作为一个班级,你不应该知道另一个班级做什么。主要是由于安全和设计问题。 简单的例子让我们假设你有一个你的应用程序使用的任何银行的 SDK。现在假设您能够更改其私人成员,假设收件人、金额、帐号。想象一下它的破坏力有多大。因此访问受限。

希望这有助于并通过现实生活中的例子给出清晰的例子。

© www.soinside.com 2019 - 2024. All rights reserved.