Java 从入门到进阶之路(十四)

在之前的文章我们介绍了一下 Java 中的抽象类和抽象方法,本章我们来看一下 Java 中的接口。

在日常生活中,我们会接触到很多类似接口的问题,比如 USB 接口,我们在电脑上插鼠标,键盘,U盘的时候不用去考虑它到底能不能插进去,只要型号对了就肯定能插进去,接口就相当于一个标准,你要想把鼠标插到我的电脑上,在出厂时就必须遵守该电脑定义的接口标准。

在 Java 中同样有接口的概念,当然也会有接口的定义标准。

  1、有 interface 定义;

  2、只能包含常量和抽象方法;

  3、接口不能被实例化;

  4、接口是需要被实现/继承的,实现类/子类:必须重写接口中的所有抽象类;

  5、一个类可以实现多个接口,用逗号隔开,若又继承又实现,应先继承后实现;

  6、接口可以继承接口;

我们先来看前三条,代码如下:

 1 interface Inter {
 2     public static final int NUM = 5;
 3     public abstract void test1();
 4 
 5     double PI = 31.415926; // 默认 public static final
 6     void test2(); // 默认 public abstract
 7 
 8     int num; // 编译错误 没有初始化
 9     public void test3() {} // 编译错误 只能是抽象方法
10 }

接下来我们看一下第4条:

1 interface Inter1{
2     void a();// 默认 public abstract
3     void b();
4     void c();
5 }
6 class Aoo implements Inter1{ // 编译错误,所有抽象方法都必须重写
7     void a(){} // 编译错误,父类默认 public,子类类型不能小于父类
8     public void b(){}
9 }

我们再来看一下第5条:

 1 interface Inter1{
 2     void a();
 3 }
 4 
 5 interface Inter2{
 6     void b();
 7 }
 8 
 9 abstract class Foo{
10     abstract void c();
11 }
12 
13 class Aoo implements Inter1, Inter2{
14     public void a(){}
15     public void b(){}
16 }
17 
18 class Boo extends Foo implements Inter1, Inter2{
19     public void a(){}
20     public void b(){}
21     void c(){}
22 }

最后我们看一下第6条:

 1 interface Inter1{
 2     void a();
 3 }
 4 
 5 interface Inter2 extends Inter1{
 6     void b();
 7 }
 8 
 9 class Aoo implements Inter2{ // 抽象方法必须都得重写,包括接口继承接口的
10     public void a(){}
11     public void b(){}
12 }

  

猜你喜欢

转载自www.cnblogs.com/weijiutao/p/11811892.html