学习笔记10(接口、匿名内部类、lambda表达式)

一、接口

1、接口简介

接口就像一个只有抽象方法的类,一个接口显然不能被实例化,接口会被其他的类通过类似于继承的方法实现。当一个类实现接口的时候,这个类要重写接口中所有的方法。

接口的一般形式如下:

public interface InterfaceName
{
 (Method headers . . .) 
}

接口的形式与类十分相似,它只是将“class”变成了“Interface”。下面看一个例子:

 public interface Displayable
 {
   void display();
 }

这个类将实现上面的接口:

public class Person implements Displayable
{
    private String name;

    // Constructor
    public Person(String n)
    {
        name = n;
    }

    // display method
    public void display()
    {
        System.out.println("My name is " + name);
    }
}

如果你希望实现一个接口,那么就在类的头中加上implements关键字,在implements关键字后加上这个类实现的接口名即可。

注意,接口中的方法都是隐式public的(也必须是public的),因此接口中的方法并不需要访问标识符(写public也行,但是没有必要)。

一个接口就像一个合同,规定了类里需要有哪些方法。但是其实接口也只是指定了方法的返回类型,方法的名字,以及方法的参数,方法具体干什么并没有指定,你可以写一个和方法体和方法名完全不相干的方法,但是这是不符合编程习惯的。

2、接口中的字段

接口中也可以有字段的声明,但是这些字段一旦被声明,就将自动地被设置为finalstatic的,所以你必须在声明的同时赋值,看下面的例子:

public interface Doable
{
 int FIELD1 = 1;
 int FIELD2 = 2;
 (Method headers . . .)
}

FIELD1FIELD2都是final static int。所有实现这个接口的类都可以访问这两个字段。

3、实现多个接口

你可能会疑惑:为什么抽象类和接口那么相似,还要发展出两个概念呢?那是因为Java中一个类只能有一个直接的超类,但是却可以同时实现多个接口。当一个类实现多个接口的时候,它必须重写这些接口中所有的方法。下面是一个类实现多个接口的例子:

public class MyClass implements Interface1,
                                Interface2,
                                Interface3

4、接口与UML

在UML图中,接口是像类一样绘制,但是接口的名字和方法名字要写成斜体,并且<<interface>>标签要写在接口名称的上面。类和接口之间的关系被称为实现关系(类实现接口)。类和接口通过一条有箭头的虚线连,箭头指向接口。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值