Java之接口详解【一篇搞定】

interface

引用数据类型:类、数组、接口

1 接口概述

接口是对Java单继承的补充。Java只支持单继承(亲爹唯一),如果在开发过程中想额外增强类的功能,可以借助接口实现(可以拜师,拜多个师傅也可以)。

接口是Java中一种重要的抽象机制,它提供了一种定义行为规范和实现多态性的方式。通过合理使用接口,可以提高代码的可扩展性、可维护性和灵活性。

接口是除了类和数组之外,另外一种引用数据类型,需要使用 interface 关键字来定义,接口最终也会被编译成.class文件,但一定要明确接口并不是类,而是另外一种引用数据类型。

接口基础定义格式:

[修饰符] interface 接口名 {
   
   
    //数据成员,可以定义多个
    [public static final] 数据类型 数据成员 =;

    //抽象方法:可以定义多个
    [public abstract] 返回值类型 方法名(形参列表);
}

案例如下:

package com.briup.chap07.test;

//使用interface关键字来定义接口
interface IAction {
   
   
	//数据成员,下面2行效果一样
	//public static final int NUM = 10;
	int NUM = 10;

	//成员方法,下面2行效果一样
	//public abstract void start();
	void start();

	public abstract void end();
}

public class Test021_Basic {
   
   
	public static void main(String[] args) {
   
   
		//接口不可以实例化对象
        //IAction ac = new IAction(); error
        
        System.out.println(IAction.NUM);
        
        //接口中数据成员默认 public static final,故而下行编译报错
        //IAction.NUM = 20;
	}
}

注意1, 定义类使用关键字class,定义接口使用关键字interface

注意2,接口中的数据成员,默认public static final修饰,是常量,名称全大写(符合命名规范)

注意3,接口中的方法,默认public abstract修饰,是抽象方法

补充内容(后面章节具体讨论):

  • JDK8中,还允许在接口中编写静态方法默认方法

  • JDK9中,还允许在接口中编写私有方法

2 接口实现

Java中类和类之间的关系是继承,且只能是单继承

类和接口是实现关系,通过implements关键字表示,可以是单实现,也可以是多实现

子类还可以在继承一个父类的同时实现多个接口

接口的实现类书写格式:

//一个类可以同时实现多个接口
[修饰符] class 类名 implements 接口名1,接口名2,... {
   
   
	重写所有抽象方法
}

注意事项:

  • 接口属于引用数据类型的一种,它不是类,它没有构造方法
  • 接口的实现类(子类),可以是正常类(重写所有抽象方法),也可以是抽象类(包含抽象方法)
  • 接口不能创建对象,一般用接口引用指向实现类对象
  • 相同接口的多个实现类,体现的是like a的关系

基础案例:

​ 实现类实现单个接口案例。

​ 定义IAction的实现类,重写所有抽象方法,最后进行功能测试。

package com.briup.chap07.test;

interface IAction {
   
   
	int NUM = 10;

	void start();

	public abstract void end();
}

//定义接口的实现类
class ActionImpl implements IAction {
   
   
	@Override
	public void start() {
   
   
		System.out.println("start开始执行 ");
	}

	@Override
	public void end() {
   
   
		System.out.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值