007.java-接口

接口的使用

  • 接口使用interface来定义

  • java中,接口和类是并列的两个结构

  • 如何定义接口:定义接口中的成员

1.JDK7及以前:只能定义全局常量和抽象方法

//全局常量:public static final的,但是书写时,可以省略不写

//全局常量
public static final int MAX_SPEED =7900//第一宇宙速度  
    
 //省略了public static final
  int MIN_SPEED=7900//抽象方法:public abstract的
//抽象方法
public abstract void stop ();

//省略了public abstract 
	void stop();

2.JDK8:除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法

  1. 接口中不能定义构造器的!意味着接口不可以实例化
  2. Java开发中,接口通过让类去实现(implements)的方式来使用.

-如果实现类覆盖了接口中的所有抽象方法,则此实现类就可以实例化

  • 如果实现类没有覆盖接口中所有的抽象方法,则此实现类仍为一个抽象类

Java类可以实现多个接口 —>弥补了Java单继承性的局限性

//格式:
  class AA extends BB implements CC,DD,EE
  1. 接口与接口之间可以继承,而且可以多继承
  2. 接口的具体使用,体现多态性
  3. 接口,实际上可以看作一种规范

2.1定义静态方法和默认方法

  1. 接口中定义的静态方法,只能通过接口来调用。

  2. 通过实现类的对象,可以调用接口中的默认方法。

    • 如果实现类重写了接口中的默认方法,调用时,仍然调用的是重写以后的方法
  3. 如果子类(或实现类)继承的父类和实现的接口中声明了同名同参数的默认方法.

    • 那么子类在没有重写此方法的情况下,默认调用的是父类中的同名同参数的方法。->类优先原则
  4. 如果实现类实现了多个接口,而这多个接口中定义了同各同参数的默认方法,/那么在实现出沿有重写此方法的情况下,报措,->接口冲突

  5. 如何在子类(或实现类)的方法中调用父类、接口中被重写的方法

public void myMethod()method3()//调用自己定义的重写的方法
    
	super.method3()//调用的是父类中声明的
    
	//调用接口中的默认方法
	CompareA.super.method3();
	CompareB.super.method3();

3.接口和抽象类区别

  • 接口是要被实现的,抽象类是要被继承的。

  • 接口只能做方法的声明,抽象类中可以作为方法的声明,也可以做方法的实现。

  • 接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量

  • 类可以实现多个接口,弥补了但单继承性的局限性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一天睡20个小时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值