zoukankan      html  css  js  c++  java
  • Java接口、Java抽象类、C++抽象类的区别

    由于这三种数据类型都是为了创建类层次结构的顶层构架,且用法有些许相似之处,这里简单区分一下:

      接口:

        接口用interface关键字定义,

        名字一般使用-able形式的形容词。

        接口通常定义抽象方法和常量,不能定义实例方法。

        接口和抽象类一样,不能通过new实例化。但是可以用来声明变量。

        接口中每个方法的默认修饰符是 public  abstract ,这意味着在在实现该方法时,必须将实现的该方法定义为public。

        接口中定义的所有的变量默认访问权限修饰符为 public final static .所以在接口中定义变量时应该使用常量的命名规则--全部大写。

      Java抽象类:

        使用abstract关键字修饰。

        不能使用new关键字实例化

        抽象类可以有或者没有抽象方法。但是有抽象方法的类必须定义为抽象类。在抽象类中可以定义在非抽象类中应有的数据元素,比如 变量, 实例方法等

      C++ 抽象类:

        通过在类中声明一个或者多个virtual函数为纯virtual函数,可以使一个成为抽象类。一个纯virtual函数(pure virtual  function)的声明如下:

          virtual  void draw() = 0 ;

        每个派生的具体类必须重写所有基类的純虚函数。virtual 函数和非 virtual函数的区别:

        virtual函数有函数的具体实现,并且提供派生类是否重写这些函数的选择权;相反,纯virtual函数并不提供函数的实现,需要派生类重写这些函数。

  • 相关阅读:
    Spring Boot 搭建项目阶段Group和Artifact的含义
    设置Mysql数据库账号密码以及时区
    反射
    线程与进程
    网络编程
    队列和栈
    linux下的mysql
    积累的关于linux的安装卸载软件基本命令
    各种url编码
    解决浏览器传值乱码
  • 原文地址:https://www.cnblogs.com/caiyao/p/3683513.html
Copyright © 2011-2022 走看看