一、接口
1、接口的定义格式:
interface 接口名{
}
2、实现接口的格式:
class 类名 implements 接口名{
}
3、接口要注意的事项
① 接口是一个特殊的类。
② 接口的成员变量默认的修饰符为: public static final ,那么也就是说接口中的成员变量都是常量。
③ 接口中的方法都是抽象的方法,默认的修饰符为: public abstract。
④ 接口不能创建对象。
⑤ 接口是没有构造方法的。
⑥ 接口是给类去实现使用的,非抽象类实现一个接口的时候,必须要把接口中所有方法全部实现。
interface A{
//成员变量
public static final int i=10;
//成员函数
public void print();
}
class Demo11.1 implements A{ //Demo11.1就实现了A接口
public static void main(String[] args){
Demo11.1 d = new Demo11.1();
d.print();
}
//实现接口中的方法
public void print(){
System.out.println("这个是接口中的print方法...");
}
}
4、接口的作用
① 程序的解耦(低耦合)
② 定义约束规范
③ 拓展功能
//普通的铅笔类
class Pencil{
String name;
public Pencil(String name){
this.name = name;
}
public void write(){
System.out.println(name+"沙沙的写...");
}
}
//橡皮接口
interface Eraser{
public void remove();
}
//带橡皮的铅笔
class PencilWithEraser extends Pencil implements Eraser {
public PencilWithEraser(String name){
super(name);
}
public void remove(){
System.out.println("涂改错字....");
}
}
class Demo11.2{
public static void main(String[] args){
PencilWithEraser p = new PencilWithEraser("2B铅笔");
p.write();
p.remove();
}
}
5、类与接口之间关系: 实现关系
① 非抽象类实现一个接口时,必须要把接口中所有方法全部实现。
② 抽象类实现一个接口时,可以实现也可以不实现接口中的方法。
③ 一个类可以实现多个接口 。
疑问: java为什么不支持多继承,而支持了多实现呢?
6、接口与接口之间关系: 继承关系
① 一个接口是可以继承多个接口的。
interface A{
public void print();
}
interface C{
public void getArea();
}
interface B extends A,C{ // B接口继承A、C接口
public void test();
}
class Demo11.3 implements B{
public static void main(String[] args){
Demo11.3 d = new Demo11.3();
d.print();
}
public void getArea(){}
public void test(){}
public void print(){
System.out.println("这个是A接口的print方法...");
}
}