接口(interface)

一:概念

接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

接口是抽象方法和常量的定义的集合。

从本质上讲接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。

接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。

接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。


二:接口的声明

格式如下:

[可见度] interface 接口名称 [extends 其他的接口名] {
        // 声明变量
        // 抽象方法
}

三:接口的特点

  • 用interface来定义
  • 接口中的所有成员变量默认都是由 public static final修饰的。
  • 接口中的所有方法默认都是由 public abstract修饰的。
  • 接口没有构造器。
  • 接口采用多层继承机制。
  • 接口也可以继承其它接口。

四:接口应用实例

设计图示

Cooking.java 接口

/*
 * 厨艺接口
 * 
 */
public interface Cooking {
	void fry(); // 炒菜
}

Singing.java 接口

/*
 * 唱歌的接口
 */
public interface Singing {
	void singing(); // 唱法
}

Person.java 抽象类

public abstract class Person
// 抽象类
{
	int age;
	String name;
	String sex;

	// 抽象方法
	public abstract void ShowInfo();
}

SCTeacher.java

/*
 * 描述会唱歌的厨子是一个老师的类
 */

//当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。
//类使用implements关键字实现接口。在类声明中,Implements关键字放在class声明后面。

public class SCTeacher extends Person implements Cooking, Singing

{
	String course; // 老师教的科目

	public void setInfo()
	// 设置属性
	{
		super.name = "张三";
		super.age = 18;
		super.sex = "男";
		this.course = "计算机科学与技术";
	}

	@Override
	public void singing()
	// singing接口的方法重写
	{
		System.out.println(super.name + "老师擅长美声唱法");

	}

	@Override
	public void fry()
	// cooking接口的方法重写
	{
		System.out.println(super.name + "老师是拿手的厨艺是做小龙虾!");
	}

	@Override
	public void ShowInfo() {
		System.out.println("会唱歌的厨子老师的信息是:");
		System.out.println(super.name);
		System.out.println(super.age);
		System.out.println(super.sex);
		System.out.println(this.course); // 本类属性用this

	}

}

T1_interface.java 实例化

public class T1_interface {
	public static void main(String[] args) {
		SCTeacher tea = new SCTeacher(); // 实例化老师类
		tea.setInfo(); // 设置老师信息
		tea.ShowInfo(); // 打印老师信息

		System.out.println("观看接口的方法实现:");

		tea.fry();
		tea.singing();
	}
}

运行结果:

会唱歌的厨子老师的信息是:
张三
18

计算机科学与技术
观看接口的方法实现:
张三老师是拿手的厨艺是做小龙虾!
张三老师擅长美声唱法


五:总结

  1. 如果实现接口的类中没有实现接口中的全部方法,必须将此类定义为抽象

  2. 抽象类是对于一类事物的高度抽象,其中既有属性也有方法。接口是对方法的抽象,也就对一系列动作的抽象。

  3. 当需要对一类实物抽象的时候,也应该是使用抽象类,好形成一个父类。 当需要对一系列的动作抽象,就是用接口,需要使用这些动作的类去实现想要的接口即可。

  4. 当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。类使用implements关键字实现接口。在类声明中,Implements关键字放在class声明后面。

posted @   Gonfei  阅读(2457)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示