C++有接口吗?C++像Java一样是单一继承吗?

2025-02-01 07:53:08
推荐回答(2个)
回答1:

C++没有接口,有类似于Java中抽象类的虚类。c++是多重继承,不是单一继承。
Java的接口和C++的虚类的相同和不同:
(1)因为Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。
(2)和继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是publicstatic,所有方法默认情况下是public.

回答2:

C++中没有接口,可以实现多重继承。
C++中有抽象类,可以实现类似Java接口的功能。
//抽象类
class A
{
virtual void test() = 0; //纯虚函数
};

class B : public A
{
void test()
{
...
}
};