接口、lambda与内部类

1. 接口

  • 一个类可以实现一个或多个接口。
  • 接口:对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。
  • 接口绝不能含有实例域,但可以提供常量(public static final)、 简单方法以及静态方法。
  • 让类实现接口通常需要两个步骤:
    1)将类声明为实现给定的接口(关键字implements)。
    2)对接口中的所有方法进行定义。
  • 接口中所有方法默认为public,但实现接口时必须把方法声明为public。
  • 接口不能构造对象,但可以声明接口的变量,该变量必须引用实现了接口的类对象。
  • 每个类可以实现多个接口。
  • 具有克隆能力的接口:Cloneable;比较能力的接口:Comparable。
  • 可以用default修饰符为接口方法提供一个默认实现:
public interface Collection
{
    int size();
    default boolean isEmpty() 
    {
        return size == 0;
    }
    ...
}

2. lambda 表达式

  • lambda 表达式是一个可传递的代码块,可以在以后执行一次或多次。

3. 内部类

  • 内部类:定义在另一个类中的类。
    内部类既可以访问自身的数据域,也可以访问创建它的外围类对象的数据域。
  • 局部内部类:定义在方法中,不能用public或private声明,作用域限定于声明这个局部类的块中。
    局部类可以访问局部变量,但局部变量必须为final。
  • 匿名内部类:
new SuperType(construction parameters)
{
    inner class methods and data
}

SuperType 可以是接口,也可以是类。由于构造器名称必须与类名相同,因此匿名类不能有构造器,而是将构造器参数传递给超类构造器。

  • 静态内部类:用 static 修饰。

4. 代理

  • 利用代理可以在运行时创建一个实现了一组给定接口的新类。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容