Java接口

本文详细介绍了Java接口的概念,包括接口的特性:不可实例化、所有方法默认public、类必须实现接口的所有方法等。此外,还阐述了接口作为单继承机制的补充,以及接口的多态性。通过示例展示了如何实现接口,以及接口如何在不同类之间传递。最后,提供了接口定义和使用的一个简易案例,包括接口中的默认方法和静态方法的使用。
摘要由CSDN通过智能技术生成

接口细节

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("手机结束工作...");
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员正正

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值