大白成为Java软件攻城狮的第二十八天(接口)

接口

  • 接口也是一种引用数据类型。
  • 接口是完全抽象的。(抽象类是半抽象。)或者也可以说接口是特殊的抽象类。

一、接口的基础语法

1、接口的语法

[修饰符列表] interface 接口名 {
}
[修饰符列表] class 类名{
}

2、接口支持多继承,一个接口可以继承多个接口

interface A{

}

interface B{

}

interface C extends A,B{

}

3、接口中只包含两部分内容

  • 常量(不能修改)
  • 抽象方法

接口没有其它内容,只有以上两部分。

4、接口中的所有元素都是public修饰的

5、接口中的抽象方法定义时:public abstract 修饰符可以省略

6、接口中的方法都是抽象方法,所以接口中的方法不能有结构体和方法体

7、接口中的常量的public 、static、final可以省略。

8、类实现接口实现方法

基础语法: 类和类之间叫做继承,类和接口之间叫做实现。

语法结构:

  • 继承使用extends关键字完成。
  • 实现使用implements关键字完成。
interface MyMath{
	double PI=3.1415;
	int sum(int a,int b);
	int sub(int a,int b);
}

//正确写法
abstract class MyMathImp1 implements MyMath{
}

错误:MyMathImp1不是抽象的,并且未覆盖MyMath中的抽象方法
/*class MyMathImp1 implements MyMath{
}*/

修正:
class MyMathImp1 implements MyMath{
	public int sum(int a,int b){
		return a + b;
	}
	
	public int sub(int a,int b){
		return a - b;
	}
}

9、当一个非抽象的类实现接口的话,必须将接口中所有的抽象方法全部实现(重点)

10、面向接口的编程

//多态:父类型引用指向子类型的对象
//调用接口里面的方法(面向接口的编程)
MyMath mm = new MyMathImp1();
mm.sum(10,20);

11、一个类可以实现多个接口

这种机制弥补了java中的一个缺陷:java中的类和类只支持单继承。实际上单继承是为了简单而出现的,现实世界中存在多继承,java中的接口弥补了单继承带来的缺陷。

12、继承和实现同时存在(extends和implements)

extends 关键字在前 ,implements关键字在后。

public class Test()
{
	public static void main(String[] args){
		Flyable f = new cat();//多态
		f.fly();//输出结果:***

}
class Animal{
}

interface Flyable{
	void fly();
}

class Cat extends Animal implements Flyable{
	public void fly(){
		System.out.println("***")
	} 
}

13、使用接口写代码时,可以使用多态(父类型引用指向子类型对象)

二、接口在开发中的作用(解耦合)

注意:接口在开发中的作用,类似于多态在开发中的作用。

多态:面向抽象编程,不要面向具体编程。降低程序的耦合度,提高程序的扩展力。

接口是不是完全的?

是的,而我们以后正好要求面向抽象编程。
面向抽象编程这句话以后可以修改为:面向接口编程。有了接口就有了可插拨。可插拔表示扩展力很强。不是焊接死的。

面向接口编程,可以降低程序的耦合度,提高程序的扩展力。符合OCP开发原则。
接口的使用离不开多态机制。(接口+多态才可以达到降低耦合度)

接口可以解耦合,解开的是调用者和实现者的耦合,
任何接口都有调用者和实现者。

  • 调用者面向接口调用。
  • 实现者面向接口编写实现。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值