我是Java和OOP的新手,
我在A类中使用了一个私有子类(实际上是一个结构)B,一切顺利,直到我决定为子类B创建一个父类C.我希望公开C类的一些受保护成员.
例如:
public class A {
private class B extends C {
public int product;
public int x;
public int y;
public void add() {
product=x+y;
}
}
B b=new B;
b.x=1;
b.y=2;
b.multiply();
System.out.println(b.product+"="+b.x+"x"+b.y);
public class C {
protected int x;
protected int y;
public int sum;
public C(px,py) {
x=px;
y=py;
}
public void sum() {
sum=x+y;
}
}
Run Code Online (Sandbox Code Playgroud)
我明白了
隐式超级构造函数C()未定义为默认构造函数.必须定义一个显式构造函数
当然,我可以删除扩展C,然后回到之前的状态.或者我可以做一个吸气剂/二传手.但我认为内部结构是可以接受的是可以理解的,它应该能够扩展其他类.
你好,我是PHP的新手,我需要帮助来理解PHP类的基础知识.
我想要一个使用私有公共保护和静态的类的示例.
他们是如何工作的..
提前致谢.
哦,我忘记了如何扩展.我在谈论父母和孩子的事情或者什么......再次感谢.
我在大约12岁的开发团队工作,我们构建了一套合理的API,我们仅在内部严格使用.通常,所有类和接口都是公共的,因为这就是它们的完成方式.我经常考虑将一些构造函数设置为内部的价值,以便API的消费者(尽管是内部的)必须使用工厂或我现在想不到的其他一些原因.
这是你和你的团队练习的东西吗?
这对您的单元测试有何影响?你是否发现通过它的工厂对一个类进行单元测试是可以的,还是通过像PrivateObject这样的东西来访问构造函数?
在C++中,我有一个基类A,一个子类B.它们都有虚拟方法Visit.我想重新定义B中的"Visit",但是B需要访问每个A(以及所有子类)的"Visit"函数.
我有类似的东西,但它告诉我B不能访问受保护的A成员!但B也是A :-P
那么,我该怎么办?
class A
{
protected:
virtual Visit(...);
}
class B : public class A
{
protected:
vector<A*> childs;
Visit(...);
}
B::Visit(...)
{
foreach(A* a in childs)
{
a->Visit(...);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢
class demo
protected
def method1
end
def methods2
end
end
Run Code Online (Sandbox Code Playgroud)
上面的语法会将这两种方法都视为受保护还是仅将其视为第一种
我有这种类型的数组: -
我想得到阵列elemtn.
context_course Object
(
[_id:protected] => 15
[_contextlevel:protected] => 50
[_instanceid:protected] => 2
[_path:protected] => /1/3/15 [_depth:protected] => 3
)
Run Code Online (Sandbox Code Playgroud)
问题是[_id:protected]
我想要有价值15
如果元素是如何我得到的protected.
谢谢.
受保护是首选但不公开的示例情况是什么?有人可以用例子详细说明吗?我已经看过公共,私人和受保护的聊天(见这里).
我是kotlin的新手我最近在kotlin学习了继承,然后我意识到我们不能将类的可见性标记为"受保护".如果我错了,请纠正我,还是有其他办法让班级得到保护?
test.cpp,最小测试代码
#include <memory>
class Parent{ // A Interface That I can't modify! can't add 'friend' or modify 'protected'
protected:
virtual ~Parent(){};
public:
// other interfaces that no one is suitable for 'delete this'
};
class Derived : public Parent{ // My class
public:
virtual ~Derived(){}
};
class Deleter : public Parent // My deleter to use unique_ptr
{
public:
void operator()(Parent* ptr)
{
delete ptr; // Actually Wrong? cannot access ptr's protected & private member
}
};
int main(int argc, …Run Code Online (Sandbox Code Playgroud)