简单介绍java的接口
一、java接口是什么?
接口是Java语言中一种引用类型,可以看作是一种可以定义一组方法签名的抽象类,但它没有任何实际的实现,被广泛用于描述对象的行为。
二、接口的格式
接口的定义格式与定义类的格式基本相同,将class关键字换成 interface 关键字,就定义了一个接口
public interface A {
int a = 1;//定义变量,必须赋予初值
//接口中的成员变量默认是public static final,可省略
void add(); //定义抽象方法
//接口中的成员方法默认是public abstract,可省略
default void method(){
System.out.println("这是默认方法!!");
}//定义默认方法
//在default前省略了public
}
三、接口的用法
1、 通过implement关键字可以实现多个接口,实现"多继承",接口之间用“,”隔开。
接口
public interface C {
void eat();// 定义的方法带public abstract修饰符,可以省略
void sleep();
}
public interface B {
void delete();
}
实现类
public class Test implements C,B{
//只能单继承的类通过实现接口后可以实现多继承
@Override
public void delete() {
System.out.println("清除大脑!!");
}
@Override
public void eat() {
System.out.println("吃吃喝喝!!");
}
@Override
public void sleep() {
System.out.println("睡大觉!!");
}
}
测试类
public class Main {
public static void main(String[] args) {
Test b = new Test();
b.delete();
b.sleep();
b.eat();
}
}
2、抽象方法
类实现了接口后,必须要重写接口中所有方法。
格式:
[ public ] abstract 返回值类型 方法名称(参数列表);
//接口
public interface C {
void eat();// 定义的方法带public abstract修饰符,可以省略
void sleep();
}
//实现类
public class Animal implements C{
@Override
public void eat() {
System.out.println("吃东西!!");
}
@Override
public void sleep() {
System.out.println("睡大觉!!");
}
//接口中的抽象方法必须重写,否则报错
//接口里的抽象方法必须全部实现
}
//测试类
public class Testanimal {
public static void main(String[] args){
Animal a=new Animal();
a.eat();
a.sleep();
}
}
接口中所有抽象方法都要实现,否则会报错 (如下图)
3、 默认方法
可以继承,可以重写,二选一,但是只能通过实现类的对象来调用。
格式:
[ public ] default 返回值类型 方法名称(参数列表){
//方法体
}
//接口
public interface C {
public default void lookdoor() {
System.out.println("看门!!");
}
//默认方法 可以继承,可以重写,二选一,但是只能通过实现类的对象来调用。
}
//实现类
public class Animal implements C{
public void sleep() {
System.out.println("睡大觉!!");
}
//继承了默认方法,可以不用重写
}
//测试类
public class Testanimal {
public static void main(String[] args){
Animal a=new Animal();
a.lookdoor();
}
}
四、接口的作用
Java接口的主要目的是实现代码重用,同时增加程序的灵活性和可扩展性。通过使用接口,程序员可以定义一组必须要实现的方法,然后让不同的类来实现这些方法。这种方式可以帮助程序员方便的使用和实现多态性,同时提高了代码的可读性和可维护性。
Java接口还有一个主要的用途是允许多个类共享相同的接口,但是实现各自不同的方法。这通过继承和实现接口来完成。这种方式可以有效的消除代码之间的耦合,同时提高程序的可维护性和可扩展性。此外,Java接口还可以帮助程序员创建插件或模块化的应用程序,以便在不同的环境下运行。
五、接口与类的区别
1、接口不能用于实例化对象。
2、接口没有构造方法。
3、接口中不能包含成员变量,除了static和final变量。
4、接口不是被类继承,是要被类实现。
5、接口支持多继承。