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

    抽象类与接口的区别

    抽象类

    抽象方法:只有声明,没有具体的实现。即abstruct关键字修饰。

    1 abstruct void function();

    抽象类与普通类的区别
    1.抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),默认情况下默认为 public。
    2.抽象类不能用来创建对象。(如模板模式中通过 Game = new Football()的方式创建具体的对象。)
    3.如果一个类继承了一个抽象类,那么子类必须实现抽象类中声明的抽象方法。(如果不实现的话,那么子类也必须定义为抽象类。)

    接口

    接口,英文名称Interface(Java中接口的关键字)。软件工程中,接口泛指供别人调用的方法或者函数。Java中,它是对行为(常见为声明的方法)的抽象。
    接口中的变量和方法,变量只能是静态常量,且默认是public;方法也只能是public abstruct方法,其中的方法都不能有具体的实现,都是抽象方法。因此可以理解为接口是比抽象类更抽象的东西。注:在接口中一般是不定义变量的。

    1 public interface InterfaceName{}

    抽象类与接口的区别

    从以下几个方面来理解抽象类和接口的区别
    1.成员:抽象类变量可以是各种类型的;接口的属性成员变量只能是静态常量值(public static final修饰)。
    2.方法:抽象类可以具体的方法;接口只能必须有抽象方法。
    3.构造:(由方法可得)抽象类可以有构造器;接口不能有构造器。
    4.继承:一个类只能继承一个抽象类,但可以实现多个方法。
    5.代码块:抽象类可以根据需要有代码块(当有具体方法的时候,如静态代码块);接口没有任何代码块,只有方法。

  • 相关阅读:
    CentOS7使用firewalld打开关闭防火墙与端口
    ssh连接卡在【To escape to local shell, press 'Ctrl+Alt+]'.】的解决方法
    本地链路地址
    RIFF和WAVE音频文件格式
    声音分贝的概念,dBSPL.dBm,dBu,dBV,dBFS
    VS中C++ 项目重命名
    FFmpeg学习6:视音频同步
    FFmpeg学习5:多线程播放视音频
    FFmpeg学习4:音频格式转换
    FFmpeg数据结构:AVPacket解析
  • 原文地址:https://www.cnblogs.com/baishouzu/p/12306833.html
Copyright © 2011-2022 走看看