问题标签 [access-specifier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 细粒度访问说明符 c++
我有以下课程:-
现在,我希望 f() 只能从特定的类集(比如 B、C、D 类)访问,而 g() 可以从特定的其他类集(比如 D、E、F 类)访问。有没有办法在 C++ 中指定这个?如果我让所有班级成为 A 的朋友,那么 f 和 g 都可以从 B、C、D、E、F(以及 A 的其他私有成员)访问,这不是我想要的。
这是可能的还是我应该改变我的对象模型?
java - c++ like protected in java
可能重复:
如何使数据成员只能被类和子类访问
在java中,
可以从类、它的子类和同一个包中存在的所有类中访问受保护的成员,
但我希望一个成员只能从类及其子类中访问(就像c++中的受保护成员一样)。
例如::
在这里,即使 B 不是 A 的子类,B 也可以访问 A 的 fun()。
如何使所有不是 A 的子类的类都无法访问 A?
编辑:: 我想在 java 中实现这一点。
java - 带有接口的“不能降低继承方法的可见性”的含义
我有两个文件:
和
我认为代码看起来没问题,但我在第二个文件中遇到错误,void print(PrintDetails details) {
其中指出:
无法降低从 继承的方法的可见性
PrintService
。
有人可以解释这对我意味着什么吗?
java - 为什么访问说明符不能用于 Java 类的方法内部声明的变量?
为什么我们不能对 Java 类的方法内声明的变量使用访问说明符?
java - 受保护的访问类型
为什么一个包中的子类不能通过超类的引用访问它的超类(在另一个包中)的受保护成员?我正在努力解决这一点。请帮我
c++ - 为什么 == 重载可以访问参数的私有成员
可能重复:
为什么类实例可以更改 obj 的私有值?
考虑以下(部分)代码:
代码编译并且结果似乎正确。但是,在if
运算符重载实现的部分,我们直接访问了它的参数的私有成员 - const Group& g
,但是这样的访问不是无效的吗?
c# - 为什么接口成员不能是非公开的?
可能重复:
C# 接口的非公共成员
假设我有
我明白了:
不实现接口成员;无法实现接口成员,因为它不是公共的;
我知道解决方法是什么,但我想知道为什么 C# 不让接口成员私有。
很多时候,我希望我的课程遵循一种模式,但不必将成员公开,比如在我编写库时。最重要的是,接口本身不是公开的:X
注意:我不是在问如何实现私有接口成员,但我知道这个决定背后的设计逻辑。我找不到合适的副本。
更新:比原始线程更多,这个来自另一个线程答案的代码示例比大多数描述答案更好地解释了它。甚至更好,来自@JonSkeet
c# - 可访问性不一致:基类比类更难访问
所以我在 DLL 中有一个抽象基类和该类的子类。我希望孩子是公开的,但基础是私有的,这样就不能在 dll 之外访问它。
我怎么做?