Java的接口和C++的虚类的相同和不同处?

如题所述

  c++虚类相当与java里面的抽象类,与接口的不同之处如下:
  1、一个子类只能继承一个抽象类(虚类),但能实现百多个接口;
  2、一个抽象类可以有构造方法,接口没有构造方法;
  3、一个抽象类中的方法不一定是抽象方法,即其中的方法可以有实现(有方度法体),接口中的方法都是抽象方法,不能有方法体,只有声明;
  4、一个抽象类可以是public、private、protected、default,
  接口只有public;
  5、一个抽象类中的方法可以是public、private、protected、default,
  接口中的方法只能是public和default.
  相同之处:都不能实例化。
  补充说明:接口是一类特殊的抽象类,是更抽象的抽象类,你可能这样理解。抽象类是一个不完整的类,接口只是定义回了一些功能。打个比方,用答抽象类和接口分别描述“猪”,抽象类就是在一般的类之前加abstrict,说:猪能用四肢跑,猪还能怎么怎么,接口的话只能说,猪会跑,用什么跑就是子类的事啦。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-07
java的接口是用来实现多重继承的,一般把一些比较通用的方法放在一个接口中,类继承了接口后对里面的方法进行实现,C++的虚类是指里面只要有一个虚函数就行,主要是为了子类实现多态性,具体还得自己搜索啊本回答被提问者采纳
第2个回答  2012-03-07
接口中只有函数的定义没有实现,C++中的虚类,可以有函数的实现,其中只要有一个函数为虚函数,该类就是虚类,而类中的其他成员函数可以为非虚函数。
相似回答