栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java接口

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java接口

接口细节

1.接口不可以被实例化(抽象)

2.接口中所有方法都是public方法,接口中抽象方法,可以不用abstract修饰

3.一个普通类实现接口,就必须将该方法将该接口的所有方法都实现

4.抽象类去实现接口时,可以不实现接口的抽象方法

5.一个类同时可以实现多个接口

6.接口中的属性,只能是final的,而且是public static final 修饰符

7.接口不能继承其他类,但是可以继承多个其它接口

8.接口的修饰符只能是public 和 默认 ,这点和类的修饰符是一样的

Extends VS Interface
  • 当子类继承了父类,就自动的拥有了父类的功能

  • 如果子类需要拓展功能,可以通过实现接口的方式来进行拓展

  • 可以理解为 实现接口 是对 java 单继承机制的一种补充

    example:

    class LittleMonkey extends Monkey implements Fish,Bird{
        //小猴子继承父类之后还可以拓展Fish,Bird能力
    }
    
接口的多态
  • 接口类型的变量可以指向 实现了该接口的对象实例

    假如现在有两个接口(IG,IH)和一个类(Test)

    • 如果IG继承了IH接口
    • 而Test类实现了IG接口
    • 那么,实际上就相当于Test类也实现了IH接口
  • 这就是所谓的 接口多态传递现象…

接口入门
package com.xz.interface_;

public interface AInterface {
    //写属性
    public int n1 = 10;

    //写方法
    //在接口中,抽象方法,可以省略abstract关键字
    public void hi();

    //在jdk8后,可以有默认实现方法,需要使用default关键字修饰
    default public void ok() {
        System.out.println("ok...");
    }

    //在jdk8之后可以有静态方法
    public static void cry() {
        System.out.println("cry...");
    }
}

简易案例
package com.xz.interface_;

public class Interface01 {
    public static void main(String[] args) {

        //创建手机和相机对象
        Phone phone = new Phone();
        Camera camera = new Camera();

        //创建computer对象
        Computer computer = new Computer();
        computer.work(phone);
        computer.work(camera);
    }
}

package com.xz.interface_;

public interface UsbInterface {
    public void start();
    public void stop();
}

package com.xz.interface_;

public class Computer {
    public void work(UsbInterface usbInterface){
        //通过接口来调用方法
        usbInterface.start();
        usbInterface.stop();
    }
}

package com.xz.interface_;

public class Camera implements UsbInterface{
    @Override
    public void start() {
        System.out.println("相机开使工作...");
    }

    @Override
    public void stop() {
        System.out.println("相机结束工作...");
    }
}

package com.xz.interface_;

public class Phone implements UsbInterface {
    @Override
    public void start() {
        System.out.println("手机开使工作...");
    }

    @Override
    public void stop() {
        System.out.println("手机结束工作...");
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/272019.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号