• 对于jdk8后的接口,接口中加入了可以定义默认方法和静态方法。

为什么要这样设计呢?

  • 是为了在给接口扩展方法的时候,不会影响已经实现了该接口的类
  • 加入默认方法可以解决:在添加方法的同时,不影响现有的实现类

下面演示了一下默认方法和静态方法的使用:

interface A{
// jdk8之后接口中可以加入默认、静态方法。
// 是为了在给接口扩展方法的时候,不会影响已经实现了该接口的类。
// 加入默认方法可以解决:在添加方法的同时,不影响现有的实现类 //定义默认方法
default void getA() {
System.out.println("接口A的默认方法");
} //定义静态方法
static void getB(){
System.out.println("接口A的静态方法");
}
} class B implements A{
public static void main(String[] args) {
A.super.getA();
B b = new B();
//调用子类重写后的父类的默认方法
b.getA();
// 直接调用父类接口的静态方法
A.getB();
} // 子类显式地调用父类的默认方法
public void getA() {
A.super.getA();
} }
  • 如果子类实现类该接口,那么子类可以覆盖接口的默认方法,也可以显式地调用父类的默认方法。

  • 在Java中,属性都是public static final修饰的

最新文章

  1. Leetcode 笔记 112 - Path Sum
  2. Vue插件开发入门
  3. 统一的Json组件和csv下载组件
  4. 润乾报表之制作List列表
  5. iOS—— static和const联合使用;使用static const 与 #define
  6. Web Service 元数据注释(JSR 181)
  7. .NET中常见对象类型
  8. ZeptoLab Code Rush 2015
  9. LXNetwork – 基于AF3.0封装的iOS网络请求库
  10. SignalR 2.0 系列:SignalR的服务器广播
  11. js 中var that=this
  12. ios Using CocoaPods to Modularize a Big iOS App->使用CocoaPods来进行模块化开发
  13. 饭卡 (背包01 一维数组) http://acm.hdu.edu.cn/showproblem.php?pid=2546
  14. DCI
  15. webview与JavaScript之间的交互
  16. iOS学习笔记1--在xcode6以上的版本中不使用storyboard以及部分控件使用
  17. ps--记录几个方法步骤
  18. 2.XML高级用法
  19. chorme调试Paused in debugger问题解决
  20. 实验与作业(Python)-02 Python函数入门与温度转换程序

热门文章

  1. 降低PDF质量
  2. 通过memberlist库实现gossip管理集群以及集群数据交互
  3. Solution -「原创」Destiny
  4. ESP8266 使用 DRV8833驱动板驱动N20电机
  5. 使用uni-app 地图组件
  6. 多表查询_子查询概述和多表查询_子查询情况1&情况2&情况3
  7. PHP正则替换函数收集
  8. 通过route , tracert , traceroute 查看本地路由配置及访问ip或域名时经过的路由信息
  9. 开源云真机平台-Sonic应用实践
  10. 一文搞懂EMAS Serverless小程序开发|电子书免费下载