Java SE day 10 面向对象基础

接口

接口是Java中的一种类型【引用数据类型】主要有两个成分:方法,常量。

定义接口的格式:

[public] interface 接口名{
  //方法  注意:接口中的抽象方法默认会自动加上public abstract修饰程序员无需自己手写!!
  //常量   接口中常量必须要给初始值,常量命名规范建议字母全部大写,多个单词用下划线连接。
}

接口是Java中的一种类型,没有构造方法,而且是抽象类型,不能直接创建对象使用。和抽象类很相似,需要定义子类去实现接口。

类与接口的关系为实现关系,即类实现接口,该类可以称为接口的实现类,也可以称为接口的子类。实现的动作类似继承,格式相仿,只是关键字不同,实现使用 implements关键字。

类实现接口的格式

[修饰符] class 类名 implements 接口名1,接口名2,...{//接口可以同时实现多个接口
    //实现所有的抽象方法
}

要求:

  1. 子类必须重写实现全部接口中所有的抽象方法。

  2. 若父接口中某个抽象方法未重写实现,这个子类也必须定义成抽象类。

==类实现接口的意义==:接口体现的是一种规范,接口对实现类是一种强制性的约束,要么全部完成接口申明的功能,要么自己也定义成抽象类。

1 接口与接口的多继承

【目标】:理解接口的多继承

接口与接口之间可以产生继承关系,和类的继承含义一样。父接口中成员会继承到子接口中去。

所有使用的关键字也是:extends

接口继承接口就是把其他接口的抽象方法与本接口进行了合并。

注意:如果多个父接口存在相同的常量,子类对象无法调用。建议使用接口名分别调用。

2 JDK 8之后的接口新增方法

  • JDK8新增默认方法,静态方法。

  • JDK9新增私有方法【了解】

【目标】:掌握这些方法的定义格式,及使用方式

2.1 接口中默认方法定义及使用

==默认方法不是抽象方法,而是具体的方法。==

【默认方法格式】

[public] default 返回值类型 方法名(参数列表){
  方法体
}

借助实现类去使用:

  1. 直接继承使用

  2. 重写使用【一旦重写,父接口中的默认方法就废弃了】

2.2 接口静态方法定义及使用

JDK8新增的方法

【静态方法格式】

[public] static 返回值类型 方法名(参数列表){
  //方法体
}

如何使用?

  1. 直接使用接口名调用

定义一个接口,内部定义静态方法

==结论:接口中的静态方法,不能用子类对象调用或者子类名调用,只能使用接口名调用==

3 类实现多个接口使用注意事项

3.1 多个接口同名静态方法私有方法

如果一个类实现了多个接口,多个接口中存在相同的静态方法,私有方法会对子类造成影响么?

静态方法和私有方法在子类中都不能被访问调用。和子类没啥关系。对于自实现类没有任何的意义。

3.2 多个接口同名默认方法

一个类父接口中存在相同的默认方法,会对子类有什么影响么?

子类会报错,需要强制重写该冲突的默认方法。

3.3 优先级的问题

当一个类,既继承一个父类,又实现若干个接口时,父类中的成员方法与接口中的默认方法重名,子类就近选择执行父类的成员方法。

==父类的这个方法相当于通过子类去重写了父接口中的方法。==

【类继承父类同时实现父接口的格式】

注意:继承一定要在实现的前面

[public] class A类 extends B类 implements 接口1,接口2,接口3,.. {
  
}

4接口中定义空接口的目的:

表示该类具有的标志。

在实际开发中,定义一些接口,表示该类能做什么事,若没有实现,表示不能做什么事。

5 A类继承B类且实现多个接口


 

6 接口小结

  • 接口中,无法定义成员变量,但是可以定义常量,其值不可以改变,默认使用public static final修饰。

  • 接口中JDK8之前方法全是抽象方法,默认会自动加上public abstract修饰【JDK8之前不包含8】

  • JDK 8开始,接口不再纯洁,支持静态方法,默认方法,(JDK9)私有方法。

  • 接口中,没有构造器,不能创建对象,最根本的原因接口是抽象的

  • 类与接口是多实现的

  • 接口与接口是多继承的

  • 接口体现的规范。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

在下张仙人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值