Java的接口的基本概念与使用

本文介绍了Java中的接口,包括接口的概念——一种能力与约定,接口的定义和书写格式,以及接口如何弥补Java单继承的缺陷。讨论了接口的实现,类与接口的关系,接口间的多继承,以及接口与抽象类的区别。最后,阐述了接口的引用使用、好处以及接口回调的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java中的接口

1、概念:接口是一种能力与约定。接口的定义:代表了某种能力。方法的定义:能力的具体实现。
2、书写格式:使用 interface 关键字定义接口,接口中定义的方法和属性都是,公开抽象方法,公开静态常量。
3、接口可以多实现,弥补了Java单继承的缺陷。可以为类扩充多种能力。

interface MyInterface{
	//实际使用中写成String filed = "value"; 前缀是默认有的
	public static final String filed = "value";
	//void method(); 前缀是默认有的
	public abstract void method();
}

接口的实现:

  1. 子类与父类之间的关系叫做继承
  2. 类与接口之间的关系叫做实现,接口可以多实现,也就是一个类可以同时 implements 多个接口。
  3. 接口与接口之间也可以实现多继承。
//定义抽象类 door ,抽象方法 open
abstract class door{
	public abstract void open();
}
//定义接口lock
interface Lock{
	public abstract void lock() ;
}
//定义接口Bell
interface Bell{
	public abstract void bell();
}
//接口的多继承
interface Key extends Bell,Lock{
	//抽象方法
}

//子类先继承父类,在通过implements实现接口,接口可以多实现。
//实现接口,要重写接口中所有的抽象方法。
class AntiThiedDoor extends door implements Lock,Bell{

	@Override
	public void open() {
		// TODO Auto-generated method stub
		System.out.println("门开了");
	}

	@Override
	public void bell() {
		// TODO Auto-generated method stub
		System.out.println("门铃手动按响");
	}

	@Override
	public void lock() {
		// TODO Auto-generated method stub
		System.out.println("门会自动上锁");
	}
	
}

抽象类和接口的异同:
抽象类:

  1. 不可以实例化
  2. 可以有普通方法,普通属性
  3. 可以有抽象方法,也可以没有抽象方法
  4. 单继承

接口:

  1. 接口可以多实现
  2. 不可以实例化接口
  3. 方法都是抽象方法
  4. 属性都是静态常量

总结:
相同点:

  1. 可以编译成为字节码文件
  2. 不能创建对象
  3. 可以作为引用类型
  4. 具备Object类中所有的方法。

不同点:

  1. 接口所有属性都是公开静态常量。
  2. 接口所有方法都是公开抽象方法。
  3. 没有构造方法,静态代码块,动态代码块。

接口的引用:
仅可调用接口中独有的方法,不可以调用类中方法。可以强转回实现类本身,进行类中独有方法调用。

public class Test3 {
	public static void main(String[] args) {
		//swim 只能调用 Swim 接口中独有的方法
		//这里实际上也是一种多态的使用
		Swim swim = new Dog();
		//run 只能调用 Run 接口中独有的方法
		Run run = new Dog();
	}
}

class Animal{
	//父类方法
}

class Dog extends Animal implements Swim,Run{
	@Override
	public void run() {
		//方法实现
	}

	@Override
	public void swimming() {
		//方法实现
	}
	//子类方法
}

interface Swim{
	public abstract void swimming();
}

interface Run{
	void run();
}

接口的好处

  1. 程序的耦合度降低
  2. 更自然的使用多态
  3. 设计与实现完全分离
  4. 更容易搭建程序框架
  5. 更容易更换具体实现

接口回调:
先有接口的使用者,再有接口的实现者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值