Java中关于接口的总结

Java中的接口

1.什么是接口

  • 接口是一个与类相似的结构,用于为对象定义共同的操作。

  • 使用接口的目的是为了指明相关或者不相关类的对象的共同行为。

  • 在Java中,接口被看作是特殊的类,与抽象类类似,不能使用new来创建接口的实例

2.接口的定义方式

public interface Demo {
  	public static final int k = 5;
  	
  	public abstract void method();
}

因为所有定义在接口内的方法都是抽象方法,不能有具体的实现,所有定义在接口内的属性都public static final 来修饰的,因此,前面的修饰符也可以省略

public interface Demo {
  	int k = 5;
  	void method();
}

上下两种定义方式是等价的

3.接口的实现方式

public class Person implements Demo {
  	public void method() {
      System.out.Println("在类中来具体实现接口中的抽象方法");
    }
}

如果一个类实现了一个接口,而没有实现接口的所有方法,则它必须被标注为abstract(抽象类)。一个抽象类的子类必须实现它未完成的方法,假如该项子类仍不会实现接口的所有方法,那么该项子类依然需要被标注为abstract。

在Java中,接口是可以多继承的。

4.关于接口的一些知识点

  • 接口中的所有成员变量都默认是由public static final修饰的。
  • 接口中的所有方法都默认是由public abstract修饰的。
  • 接口没有构造方法。
  • 实现接口的类中必须提供接口中所有方法的具体实现内容。否则实现该接口的类定义为抽象类
  • 接口也可以继承另一个接口,使用extends关键字。

5.接口使用的场景

个人认为,接口和抽象类十分相像,两者都是声明了抽象方法,然后由继承或者实现它的子类来具体实现抽象方法的内容。但是在使用上却有所不同。

举个与笔记本电脑有关的例子吧。

商家在制作笔记本时,就知道未来用户会有使用外设的需求,但是他们只负责生产笔记本电脑,所以他们就设计了许多的接口,然后就出场了,之后的事情不归他们管,电脑上的这些USB,Type-c接口,就好比接口,里面有两个抽象方法,连接和断开。用户在拿到笔记本后,想要接机械键盘,他们就插入这个接口,连接鼠标,就插入这个接口,就好比键盘类和鼠标类来实现这个同一个接口,然后这个两个类分别通过自己的方式来连接和断开设备,有的时候你的线不匹配(例如MacBook pro),你就需要一个转接口,就好比一个接口继承另一个接口。

因此我们可以总结一下,使用接口的场景

  1. 我们需要实现多态时
  2. 要实现的方法不是当前类必要的
  3. 要可以为不同种的多个类来实现同样的方法

仔细对比一下以上的例子,就可以大概想明白了。

在Java工程中,类的设计与使用是十分重要的,可以大大降低耦合度,所以如何设计一个好的类,需要长期的实践与总结。

posted @ 2020-04-30 23:13  阿-栋  阅读(465)  评论(0编辑  收藏  举报