zoukankan      html  css  js  c++  java
  • Java 接口

    一、抽象类

      抽象类是普通的类和接口之间的一种中庸之道。

    1. 如果一个类包含抽象方法,该类必须被限定为抽象类。

    2. 抽象类可以不含任何抽象方法(一般用来阻止产生该类的对象,抽象类不可以用new创建对象,因为调用抽象方法没意义)

    3. 抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。

    4. 如果一个类继承抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为abstract类。

    二、接口

      interface表示一个完全抽象的类。

    1. 接口中的变量会被隐式地指定为public static final变量。

    2. 接口中只能存在public abstract 方法

    抽象类和接口的区别

    1.语法层面上的区别

    1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;

    2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;

    3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;

    4)一个类只能继承一个抽象类,而一个类却可以实现多个接口。

    2.设计层面上的区别

    1)抽象类是对一种事物的抽象,而接口是对行为的抽象。

    2)简言之抽象类是一种功能不全的类,接口只是一个抽象方法声明和静态不能被修改的数据的集合,两者都不能被实例化。

    3)设计层面不同,抽象类作为很多子类的父类,它是一种模板式设计。而接口是一种行为规范,它是一种辐射式设计,即如果接口进行了变更,则所有实现这个接口的类都必须进行相应的改动。

    interface Alarm {
        void alarm();
    }
     
    abstract class Door {
        void open();
        void close();
    }
     
    class AlarmDoor extends Door implements Alarm {
        void oepn() {
        }
        void close() {
        }
        void alarm() {
        }
    }
  • 相关阅读:
    初学maven五节
    Nexus如何上传自己的jar包 (upload artifactory)
    通过maven获得开源项目simple4依赖jar包的几种具体操作
    maven系列笔记(安装、下载jar、搭建私服)
    如何 提高企业网站大数据量 效率
    maven archetype:generate 的进一步理解
    为什么 Git 比 SVN 好
    使用仓库管理器——Sonatype Nexus的九大理由
    IT项目管理工具探讨之_项目群管理
    MAVEN准备建立自己的开发环境
  • 原文地址:https://www.cnblogs.com/anxiao/p/7028419.html
Copyright © 2011-2022 走看看