学习一样东西,首先要知道这个东西什么有什么用?
这个接口有神马用呢?
接口的功能:先用一个例子说明一下,比如说,插座就是一个接口,所有的电器要想用电,就必须接受这个规格的插座,就必须实现所谓的接口,具体你这个电器用来干嘛的,我插座(接口)就不管你了,也就是功能与规范是分离的,不相干予的。假如你想用三头插,那好,你就换另一个接口,你的电器的接头必须实现有三插的接口规范。总之,接口就是一个规范而已。
在团队开发中,因为每一个人的命名习惯都会不同(一只狗,你叫他阿黄,我叫他狗剩一样),那么可以使用接口,将所有方法的名字预先设置好。
定义接口的关键字是:interface
格式:
访问修饰符(public) interface 接口名 {
public static final 数据类型 常量名 = 值;
public 返回值类型 方法名(参数列表);
返回值类型 方法名(参数列表);
}
接口中能够定义常量和抽象的方法;
常量实例:public static final Const=1;
抽象方法实例:public void Way(参数列表);
现在我们思考一个问题:接口能继承么?
想不出来吗?那你先想想,你知道了类能够继承了,那接口是类吗?
其实,接口也是一个类,只不过是一个特殊的类,它不仅能够继承,而且能够实现多重继承:
public interface 接口名 extends 父接口名1,父接口名2,....{
}
接口的实现:
接口的实现方式:
实现的关键字是:implements
格式:
public class 子类名 extends 抽象类或者类 implements 父接口名,... {
//实现接口中所有的方法。
}
注意:如果类实现了接口,那么必须重写接口中定义的”所有“的方法。(注意是所有)
细心的你发现了“抽象类”这个词;抽象类这东东,你说它是接口吧,肯定不是(如果是接口的话,抽象类这个词岂不是多余了,是吧),当然,它也不是一般类,它是介于一般类和接口之间的一种类,我们先看一下抽象类的格式:
格式:public abstract class 抽象类名 extends 类 implements 接口,... {
//可以定义所有的属性、方法和构造方法。
//还可以定义抽象的方法
//定义抽象方法的格式:访问修饰符(不能是private) abstract 返回值类型 方法名(参数列表);
}
此处关键字abstract用在两个地方:1.类开头的访问修饰符后 2.抽象方法的访问修饰符之后
继承抽象类的格式
public class 类名 extends 抽象类名{
//必须要重写抽象中的所有抽象方法。
}
最后有一点要注意的:
抽象类和接口一样,不能实例化对象。(因为抽象类和接口都没有完全具体化,创建的对象会具有模糊性,这对java编程者来说是不可容忍的)