需要澄清OOP中的接口

时间:2015-04-02 03:54:40

标签: c++

  1. 关于一个类,接口是什么意思?我认为它指的是该类的所有公共函数。我是正确还是其他意思? 我一直听到它,但从未注意到明确的定义。

  2. 这是真正的问题。 派生类保留派生自的基类接口意味着什么?我认为这意味着基类中的公共函数也必须在派生类中是公共的(在公共和受保护的继承中将是这种情况)。我错了吗?

1 个答案:

答案 0 :(得分:1)

  1. 是的,类的接口是其对外部世界的可见成员函数的集合,即其公共成员函数。有些还在接口中包含成员变量,但通常不具有公共成员变量(除非声明为static)。大多数情况下,interfaces是通过抽象基类实现的。这与Java形成对比,Java具有用于指定接口的不同关键字。

  2. 保留接口意味着在类层次结构中可见基类中的公共成员函数。此外,您可以覆盖虚函数,以便获得多态行为,保持通用接口。请注意,只有public继承会保留接口protectedprivate do not。另一种未能保留接口的方法是通过C ++隐藏名称。示例:将Base::f(int)重新声明为Derived::f(float,float)。在这种情况下,Base::f(int)中的Derived不再可见,除非通过using Base::f;声明。

相关问题