接口里的属性,必须是公共的/默认的&静态的&Final&初始化后的属性;
接口里所有方法都是抽象的。
接口和继承---先天有的用继承,后天学习的用接口;
接口特性--------
1.接口不可以被实例化;
2.实现类必须实现接口中所有方法,否则实现类必须是抽象类
3.实现类可以实现多个接口,来弥补Java不能多继承;
4.接口中的变量都是静态常量;(静态的-可以通过类的名字点-直接调用;)
-------------------------------------------------------------------------------------------------------
用程序描述USB接口:
![](https://i-blog.csdnimg.cn/blog_migrate/5e81e236e4d2e800217b73dcfd1c0602.png)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
接口是一种规范,体现在接口名称和注释上;
有些接口只有名字;方法的实现方式要通过注释来约定;
接口的优点:
1.可以被多继承;
2.设计与实现完全分离;
3.更自然的使用多态;
4.更容易搭建程序框架;
5.更容易更换实现;
接口与继承的区别;继承可以减少代码,而接口中都是抽象的;
接口与抽象类的区别:
1.本质区别:关键字不同;一个是class,另一个是interface;一个是类,一个是规范;
2.接口可继承接口,并可多继承接口,但类只能单根继承;
3.接口中只能做方法的声明,抽象类中既可以进行方法的声明,也可以做方法实现;
4.抽象类能保证实现的层次关系,而接口则是能够更有效的分离行为与实现;
补充:常量的使用:提供方便;
匿名实现类;(接口和抽象类也可以使用)
![](https://i-blog.csdnimg.cn/blog_migrate/1ba7aab2538e4c20cb567fe37be9346f.png)
接口的使用-----------------------
总结:
1.接口只能是公开的,抽象的;
2.属性只有公共静态&最终被允许
3.只有公共的,抽象的,默认情况下,静态和strictfp是允许的
例子如下:
1.
2.接口可以继承多个接口:
3.属性和方法的定义--
![](https://i-blog.csdnimg.cn/blog_migrate/ec00049f862ac7e8f25d6179bd19cba6.png)
注意:
1.静态常量一般是大写,所有字母都是大写
2.JDK1.8新特性:接口中可以有带方法体的静态方法
补充:
![](https://i-blog.csdnimg.cn/blog_migrate/ba70a5c65af08e8eeebbec3618d922de.png)