接口是一种标准
-
列如:
JDBC,用java连接各种数据库。
数据库有很多种:sql server,access,mysql…
这些数据库是有不同的公司生产的,开发的。
java程序:去连接不同的数据库时,使用相同的代码。希望java代 码具有通用性,那么java就要制定一个标准 -
这些标准通常是一个接口,这些接口公布出来,由各个数据库的厂商来实现它。
接口和类是同一个级别的概念。
引用数据类型:类、接口、数组、枚举…
1、如何声明一个接口
语法格式:
【修饰符】 interface 接口名{
}
2、接口的成员有哪些?
JDK1.8之前:
(1)全局的静态的常量:public static final
(2)公共的抽象的方法:public abstract
JDK1.8之后:
说明:
接口是没有构造器,代码块,和除了全聚德静态的常量以外的属性等。
3、如何使用接口?
接口就是用来被实现的。
【修饰符】 class 实现类 【extends 父类】 implements 接口们(多个){
}
4、接口的特点
(1)实现类在实现接口时,必须实现接口的所有的抽象的方法,否则这个实现类就是抽象类
(2)一个类可以同时实现多个接口
(3)接口不能直接创建对象
(4)接口可以与实现类的对象构成多态引用
(5)一个类可以同时继承父类,又实现接口,但是要求继承在前,接口在后
(6)接口与接口之间支持多继承
理解:
父类:就是亲生父亲,只有一个
接口:就像是干爹,可以有多个
public class TestDefineAndUseInterface {
public static void main(String[] args) {
Flyable f = new Bird();// (4)接口可以与实现类的对象构成多态引用
f.fly();
}
}
interface Flyable {
int MAX_VALUE = 7900000;// 全局的静态的常量:public static final
int MIN_VALUE = 0;
void fly();// 公共的抽象的方法:public abstract
}
interface Jumpable {
void jump();// 公共的抽象的方法:public abstract
}
class Animal {
}
class Bird extends Animal implements Flyable, Jumpable {
//(2)一个类可以同时实现多个接口
//(5)一个类可以同时继承父类,又实现接口,但是要求继承在前,接口在后
@Override
public void fly() {
System.out.println("我要更得更高");
}
@Override
public void jump() {
System.out.println("跳高");
}
}
/*
* 类与类之间:继承extends
* 类与接口之间:实现implements
* 接口与接口之间:继承extends 并且接口支持多继承
*
*/
interface A {
void a();
}
interface B {
void b();
}
interface C extends A, B {
void c();
}
class MySubClass implements C {
@Override
public void a() {
// TODO Auto-generated method stub
}
@Override
public void b() {
// TODO Auto-generated method stub
}
@Override
public void c() {
// TODO Auto-generated method stub
}
}