我的问题很简单:〜给定两个类,我希望其中一个扩展另一个类,但将一些方法转换为private
:
Class B
public Method a();
public Method b();
public Method c();
Class A extends B
private Method a();
private Method b();
public Method c();
这可能吗?怎么样? 谢谢!
答案 0 :(得分:1)
答案 1 :(得分:1)
这就是私人继承的用途。
class A: private B
{
// All methods of class B are now private.
// To make some "public" again:
public:
Method c() { return B::c(); } // Call the private c-method from class B.
};
答案 2 :(得分:0)
当您声明B类时,您可以将继承类型从public更改为private。
class B : public A {
private:
baseMethod();
};
or
class B : private A {
public:
baseMethod();
};
为每个方法使用适当的覆盖。
看起来您并不希望所有方法都变为私有。根据改变其可见性的方法分数选择继承类型。