java 接口 静态私有默认抽象方法,要点重点学习

接口

一.首先接口不是一种基本数据类型
接口定义
在这里插入图片描述
接口理解:
接口不是被类继承了,而是要被类实现。
接口支持多重继承。
接口就像电脑的usb,其中静态方法就像usb有一个led启动灯,由usb直接启动无需对象,抽象方法就是定义了可以互相传输数据的方法,默认方法是usb升级了,添加了一个播放功能,那么此时,播放功能也可以由客户自定义化,就是运用了默认方法的可重写性!!

接口优势
在这里插入图片描述
上图说明有点乱:简要的讲,其实因为接口/抽象类中的abstract都:cannot hava a body(抽象方法)只能声明。
那么有一个问题:接口类不也能提供默认的实现吗?下图还怎么理解在这里插入图片描述
实践证明,抽象类反而没有一种默认方法的使用,接口其实更强大,上图的优势并不明显,反而接口才更能体现这个优势!!
(!only use in a interface)
在这里插入图片描述

附上一段还不懂的文字引用:
抽象类是一种对事物的抽象,而接口是一种对行为的抽象;
抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。
抽象类是一种模板式设计,而接口是一种行为规范,是一种辐射式设计。
二.接口同abstract类一样不可以被创建实例,但是可以被继承
在这里插入图片描述
三.public abstract 返回值 方法名

注意事项
1.public abstract 固定的,不可以用private
2.可以只写 其中一个,或者两个都不写!!
3.区别:有private void 静态方法,无私有抽象,谨记,因为抽象一般都需要共享!
4.void methodAbs(); 默认为抽象方法

四.抽象方法、默认方法、静态方法的区别!!(重点重点!):
1),首先明确接口类和实现类的区别:在接口类中的抽象方法,只要定义了,实现类就必须全部实现。且只能由实现类对象创建调用,接口类不可以实例化。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2),接口的升级,即理解为默认方法的使用,默默不言,假装看不见接口的新增的default的方法,神奇的是,接口类中的bug,就是默认方法可以实现,当然默认方法就是为了可以继承下去,既然可以继承下去,那么实现类就可以对其进行重写!,并且仍然地,这个方法并不是静态方法,调用必须由实现类调用!!!
(这里接口内还没实现)
在这里插入图片描述
3),从java8开始可以有静态方法,public static void …,需要区别抽象方法,静态当然是自己实现,跟默认方法一样,需要注意的是,既然是静态方法,那么是属于这个“类的”(引用数据类型),那么就只能由接口类直接调用,不可以实例化,实例化反而错,需要区别之前的普通类,虽然普通类可以用实现类调用静态,但是不推荐,在这里接口类下的实现类,可以继承多个接口,难免有重名或者其他冲突(实则并无冲突)的接口下的静态方法,那么就规范以后只用“父类”即接口类实现对静态方法的调用!!!!

五.私有方法
缘由:default之间的公共类不应由实现类调用,必须隐藏起来,即用private
分为静态方法和默认方法的处理,选择静态私有方法和普通私有方法()
在这里插入图片描述修改为:private void 普通私有即可,无需加default等其他杂项。
同理静态方法 改为 private static void methodcommon(){}
在这里插入图片描述

六.接口的多继承和多实现

多继承,重写一次即可
在这里插入图片描述
在这里插入图片描述
这里容易理解,因为子类并无“儿子”了,而接口还有儿子,就会有默认方法,默认方法是相对于实现类来说的!!

接口的多实现
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值