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