9、接口

1、接口的定义
接口就是某个事物对外公开的一些功能(操作、方法)的声明,接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。接口规定了对象间相互通信的规范(标准、契约)。

2、定义接口的语法

  public interface 接口名[extends 接口列表]{  //一个接口也可以扩展其他接口
                定义常量;
                声明方法,接口默认所有方法都是public abstract的;
                }

3、使用接口的语法

public class  MyClass  implements 接口1【,接口2, 接口3…..】 {
	//实现接口中定义的方法
}
		如:
		public interface X {
			public [abstract] void dox();
			……
}

public interface Y {
			public [abstract] void doy();
			……
}

public interface Z {
			public [abstract] void doz();
			……
}

public class A implements X,Y,Z{
	实现三个方法,只要有一个没实现,本类将是抽象类
}

a) 使用接口声明方法和常量,接口中的方法都是抽象方法和public的,也就是说不能有方法体。
b) 接口是更加抽象的抽象的类,接口里的所有方法都是抽象方法。接口体现了程序设计的多态和低偶合高内聚的设计思想。

4、接口的扩展语法

public interface Powered extends Moveable{
		//额外加入更多的方法
   }

5、类的改进
在这里插入图片描述
6、接口与抽象类的区别
a) abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。接口弥补了类的多继承问题。
b) 在abstract class 中可以有自己的数据成员,也可以有非abstract的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(即常量:也就是必须是static final的),所有的成员方法都是abstract的。
c) abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"概念,interface表示的是"has-a"概念。 注意:当一个行为与一个类的所属行为方法不相关联时,应该采用接口来实现这个行为,不能使用抽象类,否则违反面向对象的ISP(Interface Segregation Principle)接口隔离原则和OCP(Open Close Principle)开闭原则。
d) 接口中的方法默认都是 public abstract的; 属性默认是public final static。
e) 不管是抽象类还是接口都可以实现多态性,开发设计中一般优先使用接口,其次才考虑抽象类和继承。

猜你喜欢

转载自blog.csdn.net/weixin_40574657/article/details/89215410