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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java的接口和C++的虚类的相同和不同处?相关的知识,希望对你有一定的参考价值。

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

Java接口和抽象类的理解

接口和抽象类的相同之处就是 都会有抽象方法

抽象方法就是一个没有方法体 等待继承的子类完成的方法

然而接口比较严格 它的方法必须是抽象方法且是公开的 

抽象类 可以有自己的属性 和 实体方法

首相用面向对象的思想来理解,类其实就是将生活中客观存在的对象,将对象的属性和特性封装起来

而接口与类不同,它不可以被实例化(这里指单独将接口实例化),因为它不可以当作一个对象

接口可以被理解为一种技能,功能。比如一扇门门可以有防盗及这个技能也可以同时拥有报警的功能

也就是说 一个类可以实现多个接口

然而每个子类只能有一个父类

Java 是只能单继承的一门编程语语言 

可以这样说,一个 木头(object)  被制作(继承) 成 一扇门 那么这个物体就只能成为门,它

就不可以成为汽车或者是电脑

抽象类和一般的类的区别就是 在抽象类中有抽象方法

抽象方法必须在抽象类中 当子类继承一个抽象类的时候 子类必须完成父类的抽象方法

或者子类也成为抽象方法

抽象类就是表示在这个类中有抽象方法(声明一个没有抽象方法的类是没有意义的)等待子类去实现抽象方法

 

以上是关于Java的接口和C++的虚类的相同和不同处?的主要内容,如果未能解决你的问题,请参考以下文章

c++ 虚函数和纯虚函数

Java接口和抽象类的理解

概念与接口有何不同?

接口的名称可以与其类的名称不同吗? [c++]

9-2:C++多态之纯虚函数和抽象类以及接口继承和实现继承

Javaの一篇带你吃透接口