JavaSE——面向对象:接口

什么是接口:java

  • 硬件接口:指的是两个硬件设备之间的链接方式。硬件接口既包括物理上的接口,还包括逻辑上上的数据传输协议。
  • 软件接口:程序代码,特殊的类。表示一种规范,是具备N个方法的特征集合。

    在封装时,显示器封装了不少电子元件,最终向外暴露数据交互的孔——>>接口,目的在于实现设备和设备之间的通讯。编程

   

    

     在Java中,接口表示一种规范/约束/要求实现者必须遵循该规范。用来约束使用者该怎么作。ui

 

Java中的接口spa

    专家说:多个抽象类的抽象就是接口。code

    说人话:在Java中最小的程序单元就是类,接口实际上是一个特殊的类。继承

Java中的接口表示规范,用于定义一组抽象方法,表示某一类事务必须具有的功能,要求实现类必须来实现该接口并提供方法实现。接口

//演示接口
interface IConnect{
	String PI= "aaa";	//接口中的成员变量
	void doWork();		//接口中的方法
	interface IWatch{	//		接口中的类(接口)
		
	}
	
}

public class InterfaceTest {

	public static void main(String[] args) {
		
		System.out.println("AA");
	}

}

接口的定义和继承事务

    类和类之间是继承关系:用extends来表示。class

    接口和接口之间只能是继承关系:用extends来表示。变量

    接口和实现类之间只能是实现关系:用implements来表示。

    

接口的实现

程序示例

interface PaXing{

	void doWork();		//接口中的方法
	
}

interface ShuiXing{

	void doSwim();		//接口中的方法
	
}

interface LiangQi extends PaXing,ShuiXing{  //接口的继承

	void doSwim();		//接口中的方法
	
}

class YYY implements LiangQi{	//类实现子类接口
	public void doWork(){
		System.out.println("This is YYY dowork Cat!");
	}
	public void doSwim(){
		System.out.println("This is YYY dowork Cat!");
	}
}

 class SSS implements PaXing,ShuiXing{  //类实现多接口
	public void doWork(){
		System.out.println("This is SSS dowork Cat!");
	}
	public void doSwim() {
		System.out.println("This is SSS doswim Cat!");
	}
}
 
 class Fish implements ShuiXing{	//类实现单接口
	 public void doSwim(){
		 System.out.println("This is Fish doswim fish!");
	 }
 }

public class InterfaceTest {

	public static void main(String[] args) {
		
		SSS a=new SSS();	
		a.doSwim();
		a.doWork();
		System.out.println("****************");
		
		PaXing d= new SSS();	
		d.doWork();   //没有doSwim()方法
		
		System.out.println("****************");
		YYY b=new YYY();	//鄙视写法
		b.doSwim();
		b.doWork();
		System.out.println("****************");
		
		LiangQi c= new YYY();	//高级多态写法,面向接口编程。
		c.doSwim();
		c.doWork();
		System.out.println("****************");
		
		ShuiXing fish1= new Fish();
		fish1.doSwim();
	
	}

}

运行结果

This is SSS doswim Cat!
This is SSS dowork Cat!
****************
This is SSS dowork Cat!
****************
This is YYY dowork Cat!
This is YYY dowork Cat!
****************
This is YYY dowork Cat!
This is YYY dowork Cat!
****************
This is Fish doswim fish!

接口和抽象类的区别

    相同点

  • 都位于继承的顶端,用于被其余实现或继承。
  • 都不能实例化
  • 均可以定义抽象方法,其子类/实现类都必须覆写这些抽象方法。

    不一样点

  • 接口没有构造方法,抽象类有。
  • 抽象类可包含抽象方法和普通方法,接口只能包含抽象方法(Java8以前)。
  • 类是单继承(多是继承抽象类),却能够实现多个接口。接口是多继承。(接口弥补了java的单继承)
  • 成员变量:接口默认是public static final,抽象类是默认包权限。
  • 方法:接口里默认是public abstract ,抽象类默认是默认包访问权限。
  • 内部类:接口里默认是public static,抽象类默认是默认包访问权限。

    若是接口和实现类能够完成相同的功能,尽可能使用接口,面向接口编程。

相关文章
相关标签/搜索