zoukankan      html  css  js  c++  java
  • Java中的内部接口

    一.内部接口简介

    内部接口也称为嵌套接口,即在一个接口内部定义另一个接口。举个例子,Entry接口定义在Map接口里面,如下代码:

    1 public interface Map {
    2     interface Entry{
    3         int getKey();
    4     }
    5     void clear();
    6 }

    二.内部接口的特点和意义

    三个主要的理由.
    1.一种对那些在同一个地方使用的接口进行逻辑上分组;
    2.封装思想的体现;
    3.嵌套接口可以增强代码的易读性和可维护性;

    在Java标准库中使用内部接口的一个例子是java.util.Map和Java.util.Map.Entry。这里java.util.Map同样被当成命名空间使用。Entry并不属于全局作用域范围.

    三.例子

    Map.java

    1 public interface Map {
    2     interface Entry{
    3         int getKey();
    4     }
    5     void clear();
    6 }

    MapImpl.java

     1 public class MapImpl implements Map {
     2     class ImplEntry implements Map.Entry{
     3         public int getKey() {
     4             return 0;
     5         }
     6     }
     7     @Override
     8     public void clear() {
     9         //clear
    10     }
    11 }

    四.与内部类的对比

    为了弄清楚内部接口是如何工作的,我们可以拿它与内部类作比较。

    内部类可以被认为是一个外部类内部定义的一个常规方法。因为一个方法可以被声明为静态和非静态,类似的内部类也可以被声明为静态和非静态。

    静态类类似于静态方法,它只能访问外部类的静态成员属性。非静态方法可以访问外部类的所有成员属性。

    因为接口是不能实例化的,内部接口只有当它是静态的才有意义。因此,默认情况下,内部接口是静态的,不管你是否手动加了static关键字。

    转载来自:http://www.cnblogs.com/chenpi/p/5518400.html

  • 相关阅读:
    20210621模拟
    20210615模拟
    树套树总结
    线段树分治详解
    线性基
    模拟2
    博雅大数据机器学习十讲第九讲
    博雅大数据机器学习十讲第八讲
    博雅大数据机器学习十讲第七讲
    博雅大数据机器学习十讲第六讲
  • 原文地址:https://www.cnblogs.com/heureuxl/p/13437101.html
Copyright © 2011-2022 走看看