JAVA接口基础详解

2022-08-10 09:06:28

JAVA接口基础详解

接口概念:

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

接口可以理解为一种特殊的类,里面全部是由全局静态常量和公共的抽象方法所组成。接口是解决Java无法使用多继承的一种手段,但是接口在实际中更多的作用是制定标准的。

接口的特点:

  • 关键字 interface

  • 接口中的所有成员变量都默认是由public static final修饰的。

  • 接口中的所有方法都默认是由public abstract修饰的。

  • 接口没有构造方法,不能被实例化。

  • 实现接口的类中必须提供接口中所有方法的具体实现内容。

  • 一个类可以实现不止一个接口,通过implements 关键字后边加接口名,不同接口名之间用","隔开,间接实现了多继承。

  • 接口可以继承。一个接口可以继承于另外一个接口。

  • 接口相当于是一个底层蓝图的抽象类,它指明了一个类必须要做什么

  • 接口是一个100%的抽象类。接口里边的方法100%是抽象方法,但抽象类中可以有具体的方法。

接口的实现:

接口定义:

关键字:interface(接口)

public(访问修饰符) interface (关键字)  接口名  extends 父接口名,父接口名{
	public static final 常量;  //属性都是 默认 公有 静态 常量
	public abstract 方法;// 方法都是 默认 公有 抽象 方法
}
//*****
public interface AnimalInterface{
	public static final string name="naimal";
	
	public void eat();
	
	public void move();
}

接口在类中的实现:

关键字:implements(工具)

访问修饰符 class 类名 extends 父类名 implements 接口名1,接口名2{
	//父类只能有一个,但接口可以多个
	
	//****必须实现接口中的所有抽象方法,方法名、返回类型、参数个数类型、访问修饰符必须完全一致。
	public void eat(){
	
	}
	public void move(){
	
	}
}

//*****
public class tiger implements AnimalInterface{
	public void eat(){
		System.out.println("我吃肉");
	}
	public void move(){
		System.out.println("我在地上跑");
	}
}

接口的使用:

//接口
public interface AnimalInterface{
	public static final string name="naimal";
	
	public void eat();
	
	public void move();
}

//实现接口的类
public class Tiger implements AnimalInterface{
	public void eat(){
		System.out.println("我吃肉");
	}
	public void move(){
		System.out.println("我在地上跑");
	}
}
//实现接口的类
public class Bird implements AnimalInterface{
	public void eat(){
		System.out.println("我吃昆虫");
	}
	public void move(){
		System.out.println("我在天上飞跑");
	}
}

//*****定义一个主类调用各种方法
public class animal{
	public static void main(Sting [] args){
		//建立类的对象
		Tiger tiger=new Tiger();        
		tiger.eat();                   
		tiger.move();  
/**
//AnimalInterface tiger=new Tiger();
// tiger.eat();		                 
//我们不能直接去实例化一个接口,因为接口中的方法都是抽象的,是没有方法体的,这样怎么可能产生具体的实例呢?但是,我们可以使用接口类型的引用指向一个实现了该接口的对象,并且可以调用这个接口中的方法。
*/
		Bird bird=new bird();
		bird.eat();
		bird.move();
	}
}
//****输出结果:
我吃肉
我在地上跑
我吃昆虫
我在天上飞

为什么要用接口:

“多重继承”:

有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。

精简程序结构,免除重复定义:

比如,有两个及上的的类拥有相同的方法,但是实现功能不一样,就可以定义一个接口,将这个方法提炼出来,在需要使用该方法的类中去实现,就免除了多个类定义系统方法的麻烦。

  • 作者:Godvvvvvvv
  • 原文链接:https://blog.csdn.net/weixin_51951103/article/details/120250497
    更新时间:2022-08-10 09:06:28