欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java接口(Interface)的一些知识点

程序员文章站 2022-05-22 11:19:27
...

Java接口
(1).接口,在JAVA编程中是一个抽象类型,可以说是抽象方法的集合,里面包含了很多个的抽象方法,抽象方法也就是没有实现的方法。
(2).接口并不是类,但是与类相似

下面以代码的方式来理解一下接口。

1.创建一个接口并实现
和创建类一样,在你的包下面中 new ->interface
创建了一个音频接口

//抽象方法实现声音
package me;    

public interface Audio
{
   public void voice();
}

在主类中可以发现,接口可以创建对象,但是不能通过new关键字实例化,必须有一个类来实现他的抽象方法

public static void main(String[] args)
	{
		Audio a ;
		Audio a = new Audio();  //错误不能通过new关键字实例化
	}

引入一个xiaomiAudio类来实现抽象方法

public class xiaomiAudio implements Audio
{

	@Override
	public void voice()
	{
		System.out.println("发出声音dadada");
		
	}
   
}

在主类中,控制台打印 发出声音dadada
java接口(Interface)的一些知识点
**
2 接口与继承
类只可以继承一个类,但可以实现多个接口

package example;

interface a {
	
	public void haha();
}

interface b{
	
	public void sayHello();
}
 class Language implements a,b{

	@Override
	public void sayHello()
	{
		System.out.println("hello");
	}

	@Override
	public void haha()
	{
		System.out.println("haha");
	}	
}

public class my
{

	public static void main(String[] args)
	{
		Language lan = new Language();
		lan.haha();
		lan.sayHello();
	}

}

3关于接口的使用***
关于这个问题,可能大家会遇到一种现象,在学习的过程中呢,常遇到这么一种情况,

Connection conn = DriverManager.getConnection(connectionUrl, username, password);
		System.out.println("连接成功!");
		
		///////////////////////////////////////////////
		
		// 数据库查询, Statement语句  ResultSet结果集
		Statement stmt = conn.createStatement(); 
		ResultSet rs = stmt.executeQuery("SELECT * FROM student");

在这个里面Connection是一个接口,但是却可以直接执行conn.createStatement(); 这个方法。然而我并没有写这个方法的实现,这是怎样一种情况呢?下面我用代码讲解一下

package example;

interface WorldHuman
{
    public void sayHello();
}


class ChineseHuman implements WorldHuman
{

	@Override
	public void sayHello()
	{
		System.out.println("你好");
		
	}
	
}

class HumanUtil
{
	public static WorldHuman getHuman()
	{
		return new ChineseHuman();
	}
}


public class my
{

	public static void main(String[] args)
	{
		
	  WorldHuman me = HumanUtil.getHuman();
	  me.sayHello();
	}
}

最后的打印结果呢,就实现接口的抽象方法打印了出来。打印 “ 你好” 二字。
在这个里面 我们会发现,如果把ChineseHuman和HumanUtil这两个类隐藏起来呢,其他的功能照样会实现,这也就解释了为什么上面的Connection接口中可以直接调用方法,因为内部的方法已经

有人帮我们实现了,我们直接调用即可。隐藏后是这样

package example;

interface WorldHuman
{
    public void sayHello();
}


public class my
{

	public static void main(String[] args)
	{
		
	  WorldHuman me = HumanUtil.getHuman();
	  me.sayHello();
	}
}

接口,其实就是开发中方法集合的规范。接口里的抽象方法,API中其实已经帮我们实现并隐藏了,只不过不是我们自己实现的,我们只需要调用即可。