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

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
在这里插入图片描述
**
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中其实已经帮我们实现并隐藏了,只不过不是我们自己实现的,我们只需要调用即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章