Interface
JAVA中的Interface
最近在跟着杜老师的视频学习Java中的接口,这里分享一下我的学习心得,第一次尝试写博文,写不好勿喷。
接口是Java开发中经常用到的,按我的理解,接口从某种程度上来说就是一个类(只是做一个形象的说明)。
接口也可以比喻成我们电脑上的USB、DP口等类似的接口,具有可插拔的特性,比如电脑的鼠标坏了,我们可以拔掉换一个新的,试想一下没有这个接口,也就是说鼠标和电脑是一体的,那么想要更换鼠标就必须把电脑拆开想想都**。
描述了这么多相信你对接口也有了一定的理解,下面让我们看看接口都有什么特点吧!
基础语法
- 接口也是一种引用数据类型,类似Sting。接口是完全抽象的,而抽象类是半抽象的。
- 这里想介绍接口的标准写法然后在解释上面的全抽象和半抽象,接口的语法如下
// An highlighted block
【修饰符列表】 interface 接口名{
...
}
- 这里介绍什么全抽象,什么是半抽象。从代码的角度理解,全抽象是抽象类的特例,其内部只包含常量和抽象方法不可以包含别的(jdk更新之后好像还支持写别的,我还没涉猎到);而半抽象例如抽象类,内部既可以包含抽象方法常量也可以包含非抽象的方法和变量;
- 例:接口中只存在抽象方法和常量,且其中的所有元素都是公开的,注意抽象方法是没有方法体的,下面会说方法体在哪写(小伏笔,嘿嘿!),具体如下:
// An highlighted block
interface MyMath{
(public static final)(可以省略) double PI=3.1415926;
(public abstract)(可以省略) int sum (int a, int b);
}
- 接口支持多继承,而类、抽象类仅支持单继承,例如:
// An highlighted block
interface A{
}
interface B{
}
interface C extends A,B{
}
- 类和接口之间叫做实现,也可以看做是继承,只不过使用的关键字不同,继承使用的关键字是extends;实现使用的是implements;这里的实现就是将接口中的抽象方法进行实现,因为抽象方法没有方法体嘛!
- 特别注意!!!! 》》》》当一个非抽象的类实现接口的话,必须将接口中的所有(抽象)方法全部实现(覆盖/重写),例子如下:
// An highlighted block
interface A{
void m1();
void m2();
}
class B implements A{
//这里必须要实现A中的m1,m2方法,不然编译器会报错!
public(不可以省略) void m1(){
}
public(不可以省略) void m2(){
}
}
- 一个类可以实现多个接口,这也弥补了类的单继承的缺陷;
闲言碎语
本人也是正在学习Java的相关知识,只是想分享一下自己的学习心得,同时加深对知识的理解(私心,嘿嘿!),有些点可能理解的不太到位,希望能帮助到您,如果有错误的地方欢迎指正,万分感谢!!!