java基础之十二->接口(interface)

接口

java基础之十二->接口(interface)_第1张图片

特征

1、接口中的所有方法都是抽象方法,不能包含方法的实现
2、接口中的所有方法的访问修饰权限都是public,不写并不是默认访问权限,而是public
3、接口不能被实例化
4、接口的子类必须要实现接口中的所有方法,跟抽象类有所不同,抽象类中的抽象方法必须要被子类实现,普通方法可以不重写
5、子类可以实现多个接口
6、接口中的变量都是静态常量,如果没有使用static关键字修饰,它默认也表示静态常量,不用final关键字修饰,默认也是常量,不能修改
7、接口中的方法和常量无论是否添加public修饰,默认的权限有且仅有一个,就是public

用法

java基础之十二->接口(interface)_第2张图片
java基础之十二->接口(interface)_第3张图片
java基础之十二->接口(interface)_第4张图片
java基础之十二->接口(interface)_第5张图片
java基础之十二->接口(interface)_第6张图片
1、使用interface来修饰
2、接口中可以包含多个方法,且方法跟抽象类中的抽象方法一致,不写实现,子类在实现的时候必须要实现这些方法的逻辑,将这些方法进行实现,就意味着具有了某种能力
3、子类实现接口使用implements

示例

接口(提供一种能力,数据传输dataTransfer()) Usb

package com.msbline.oop.interface1;
public interface Usb {
    public void dataTransfer();
}

实现类 Upan

package com.msbline.oop.interface1;
public class Upan implements Usb{
    @Override
 public void dataTransfer() {
        System.out.println("upan可以传输数据");
    }
}

实现类 Mouse

package com.msbline.oop.interface1;
public class Mouse implements Usb{
    @Override
 public void dataTransfer() {
        System.out.println("鼠标来点击屏幕");
    }
}

测试 Test

package com.msbline.oop.interface1;
public class Test {
    public static void main(String[] args) {
        Mouse mouse = new Mouse();
        mouse.dataTransfer();
        Upan upan = new Upan();
        upan.dataTransfer();
    }
}

接口与抽象类的区别

1、抽象类中的方法可以有抽象方法,也可以有普通方法,接口中只能包含抽象方法
2、抽象类使用abstract关键字来修饰,接口使用interface来修饰
3、子类使用extends关键字来继承抽象类,使用implements来实现接口
4、子类继承抽象类的时候必须要实现所有的抽象方法,普通方法可以不重写,而接口中的所有方法必须实现
5、抽象类中可以定义成员变量,接口中只能定义静态常量
6、抽象类在子类实现的时候是单继承,而接口可以多实现
7、抽象类和接口都不能实例化,但是抽象类中可以有构造方法,接口中不能有抽象方法
8、抽象类中可以实现接口,并且不实现接口中的方法,而接口只能继承接口,不能实现接口
9、抽象类中的抽象方法的访问权限可以使用public、protected和默认权限,而接口中的方法只能是public

总结

java基础之十二->接口(interface)_第7张图片
java基础之十二->接口(interface)_第8张图片
java基础之十二->接口(interface)_第9张图片
java基础之十二->接口(interface)_第10张图片
java基础之十二->接口(interface)_第11张图片

你可能感兴趣的:(java)