1.   定义Java类的语法格式:先写extends,后写implements

class SubClass extends SuperClass implements InterfaceA{}

 2.  一个类可以实现多个接口,接口也可以继承其他接口。

3.  实现接口的类中必须提供接口中所有方法的具体实现内容,方可实例化。否则,仍为抽象类。

4. 接口的主要用途就是被实现类实现。(面向接口编程

5.  与继承关系类似,接口与实现类之间存在多态性。

6. 接口与类是并列关系,或者可以理解为一种特殊的类。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义(JDK7.0及之前),而没有变量和方法的实现。

接口的使用

1. 接口使用上也满足多态性

2. 接口,实际上就是定义了一种规范

3. 开发中,体会面向接口编程!

第一种   创建了接口的非匿名实现类的非匿名对象

public class day01 {
    public static void main(String[] args) {
     Computer com=new Computer();
     //创建了接口的非匿名实现类的非匿名对象
     Flash flash=new Flash();
     com.transferdata(flash);
    }
}

输出

java 接口 多态 java接口实现多态_jvm

第二种   创建了接口的非匿名实现类的匿名对象

public class day01 {
    public static void main(String[] args) {
     Computer com=new Computer();
   //创建了接口的非匿名实现类的匿名对象 
     com.transferdata(new Printer());
    }
}

输出

java 接口 多态 java接口实现多态_java_02

 第三种  创建了接口的匿名实现类的非匿名对象

public class day01 {
    public static void main(String[] args) {
     Computer com=new Computer();
     //创建了接口的匿名实现类的非匿名对象
        USB phone=new USB() {
            public void start() {
                System.out.println("手机开始工作");
            }
            public void stop() {
                System.out.println("手机结束工作");
            }
        };
           com.transferdata(phone);
    }

输出

java 接口 多态 java接口实现多态_java_03

第四种  创建了接口的匿名实现类的匿名对象

public class day01 {
    public static void main(String[] args) {
     Computer com=new Computer();
     //创建了接口的匿名实现类的匿名对象
        com.transferdata(new USB() {
            public void start() {
                System.out.println("mp3开始工作");
            }
            public void stop() {
                System.out.println("mp3结束工作");
            }
        });
    }
}

输出

java 接口 多态 java接口实现多态_匿名对象_04