Java接口

Java接口(Interface)是一种抽象类型,用于定义类的行为规范,本身不包含实现,需由类通过 implements 关键字实现。它是Java面向对象编程中实现多态和组件化设计的重要工具,以下是核心概念和用法:
 
一、接口的定义与特点
 
1. 定义格式
public interface 接口名 {
    // 常量(默认public static final)
    int MAX_SIZE = 100;

    // 抽象方法(默认public abstract)
    void method1();
    String method2(String param);
}
 
2. 核心特点
- 接口中所有属性默认是 public static final 常量,所有方法默认是 public abstract 抽象方法(可省略修饰符)。
- 接口不能被实例化,只能被类实现或接口继承。
- 一个类可实现多个接口(解决Java单继承限制),接口可继承多个接口(用 extends 关键字)。
 
二、类实现接口的方式
 
1. 单接口实现
class MyClass implements MyInterface {
    // 必须实现接口的所有抽象方法
    @Override
    public void method1() {
        System.out.println("实现方法1");
    }

    @Override
    public String method2(String param) {
        return "结果:" + param;
    }
}
 
2. 多接口实现(示例)
interface Runable { void run(); }
interface Flyable { void fly(); }

class SuperMan implements Runable, Flyable {
    @Override public void run() { /* 实现奔跑 */ }
    @Override public void fly() { /* 实现飞行 */ }
}
 
 
三、接口的继承(多继承特性)
 
interface A { void methodA(); }
interface B { void methodB(); }

// 接口C继承接口A和B(多继承)
interface C extends A, B {
    void methodC();
}

class MyClass implements C {
    // 必须实现A、B、C中的所有方法
    @Override public void methodA() {}
    @Override public void methodB() {}
    @Override public void methodC() {}
}
 
 
四、接口的应用场景
 
1. 实现多态
接口引用可指向实现类对象,通过同一接口调用不同实现类的方法:
// 接口作为引用类型
MyInterface obj = new MyClass(); // 接口引用指向实现类对象
obj.method1(); // 调用MyClass的实现
 
2. 定义规范(如API接口)
例如Java集合框架中, List 、 Set 等接口定义了数据操作规范, ArrayList 、 HashSet 等类负责具体实现。
3. 组件化设计
接口分离不同功能模块,使代码解耦(如MVC架构中,接口定义服务层与控制层的交互规范)。
 
五、Java 8+对接口的增强
 
1. 默认方法(Default Method)
- 用 default 关键字定义带实现的方法,实现类可直接使用或重写:
interface NewInterface {
    default void defaultMethod() {
        System.out.println("默认方法实现");
    }
}
 
2. 静态方法
- 接口中可定义 static 方法(用于工具方法,如 Collections.sort() ):
interface Util {
    static void printInfo() {
        System.out.println("工具方法");
    }
}
// 调用:Util.printInfo();
 
 
六、接口与抽象类的区别
 
对比项 接口(Interface) 抽象类(Abstract Class) 
定义方式  interface 关键字  abstract class 关键字 
实现方式 类用 implements ,可多实现 类用 extends ,单继承 
方法实现 方法默认抽象(Java 8+可加默认实现) 可包含抽象方法和普通方法 
属性特点 只能是 public static final 常量 可包含普通属性 
设计目的 定义行为规范(“能做什么”) 定义领域模型的公共部分(“是什么”) 
 
总结
 
接口是Java中“约定大于实现”的体现,通过分离规范与实现,提升代码的可扩展性和可维护性。实际开发中,常利用接口实现插件化设计、框架扩展(如Spring框架的接口注入)等场景,是面向对象设计的核心概念之一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值