java中的接口(个人小结)

1.什么是接口?

1.1从生活中理解:

生活中常用的接口有USB、Type-C、HDMI等等。这些接口就是做一些事情的一种规范,但具体做什么事,需要由遵从接口的实现类来决定。
如USB接口,可以做很多事,但具体做什么需要由连接USB接口的设备类型决定,如鼠标类用来控制光标、键盘类用来输入、U盘类用来存储数据等等。

1.2java中的接口

类似于生活中的接口,创建新接口并通过自定义接口里的方法,从而使该接口的不同实现类对象完成不同的功能。因此可以说接口就是一系列abstract方法的集合。接口没有对象,且本身没有任何实现。接口不能new对象,但可以new一个引用类对象,下边会讲到。

2.接口的使用

2.1格式:

创建接口:

interface  接口名 {
		成员变量//缺省属性:public static final
		成员方法//缺省属性:public abstract
		//方法中也可用default关键字修饰方法,拥有方法体,表示默认处理方法,是非强制实现方法
}

实现类【遵从】接口:

class 类名 implements 接口 {
	//非abstract类须将接口中的方法全部实现
}

2.2接口中的继承

接口和接口之间,允许使用extends关键字继承,并且与类继承的唯一性不同,接口继承允许一个接口同时继承多个接口。
理解:协议的向下兼容

interface A extends B,C
//创建同时继承接口B、C的接口A

案例:

interface USB {
//所有USB设备必须实现的方法
void connect;
}
//接口的实现类(鼠标类)
class Mouse implements USB { 
	@Override
	public void connect(){
		system.out.println("鼠标连接USB接口");
	}
}
//接口的实现类对象
class Logi extends Mouse {
	@Override
	public void connect(){
		system.out.println("罗技鼠标已连接");
	}
}

2.3接口中的多态

多态:
接口的引用指向遵从接口的实现类对象。或者说父类的引用指向子类的对象。
作用:
1.拓宽方法的参数范围。如:方法参数为某类型,则该类本身类对象或者其子类的类对象都可作为参数。
2.拓宽方法的返回值范围。
3.简化代码开发放,提高开发效率,整合数据类型

2.4接口中的匿名内部类

2.4.1理解

当重在使用接口中的方法,而类过于繁杂、不重要的时候,可直接通过接口new一个引用,该引用指向的是该接口的实现类对象,可通过该引用调用方法。

2.4.2使用格式

格式:
(1)

//用A接口new一个引用a,指向A的实现类对象
A a = new A() {
	//大括号里可认为是类的本身
	@Override
	public void test() {
		system.out.println("匿名内部类的对象赋值给接口的引用");
	}
}
a.test();

(2)直接用匿名类对象调用实现的方法

new A() {
	@Override
	public void test() {
		System.out.println("匿名内部类的匿名对象直接调用方法");
	}
}.test();

(3)匿名内部类的对象直接作为方法的参数

testInterface(new A() {	
	@Override
	public void test() {
		System.out.println("匿名内部类的匿名对象直接作为方法的参数");
	}
};

(4)需要接口A的实现类对象作为方法的参数

public static void testInterface(A a) {
	a.test();
}
2.4.3应用

优化选择排序算法

2.5集合中的接口

除自定义接口以外,java中会提供很多接口。如集合中的【总接口】Collection。java中所有和集合有关的内容都是Collection接口的子接口。
如Collection接口下有List接口【有序可重复】、Set接口【无序不可重复】、Vector接口。
List接口下有ArrayList【可变长数组结构】、LinkedList【双向链表结构】
总接口Collection中的一些常用方法被其子接口继承。如void clear();、boolean remove();

发布了5 篇原创文章 · 获赞 1 · 访问量 249

猜你喜欢

转载自blog.csdn.net/qq_41986648/article/details/104459538