博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
接口02--默认方法
阅读量:3960 次
发布时间:2019-05-24

本文共 1457 字,大约阅读时间需要 4 分钟。

默认接口主要解决接口升级问题。

1.先定义一个接口

public interface MyInterfaceDefault {
// 抽象方法 public abstract void methodAbs();

2.定义两个方法来实现它

public class MyInterfaceDefaultA implements MyInterfaceDefault{
@Override public void methodAbs() {
// TODO Auto-generated method stub System.out.println("实现了抽象方法,AAA"); }
public class MyInterfaceDefaultB implements MyInterfaceDefault{
@Override public void methodAbs() {
// TODO Auto-generated method stub System.out.println("实现了抽象方法,BBB"); }

3.向接口中新加入一个抽象方法

public interface MyInterfaceDefault {
// 抽象方法 public abstract void methodAbs(); //新添加了一个抽象方法 public abstract void methodAbs1();

程序报错,因为实现接口必须实现接口的所有方法

如果改MyInterfaceDefaultA和MyInterfaceDefaultB就很复杂了

4.这样的话,可以向程序中加入默认方法

public interface MyInterfaceDefault {
// 抽象方法 public abstract void methodAbs(); //新添加了一个抽象方法 //public abstract void methodAbs1(); //新添加的方法改为默认方法 public default void methodDefault() {
System.out.println("这是新添加的默认方法"); }

5.使用:

public class Demo02shiyong {
public static void main(String[] args) {
// 创建了实现类对象 MyInterfaceDefaultA a = new MyInterfaceDefaultA(); a.methodAbs(); // 调用抽象方法,实际运行的是右侧实现类。 // 调用默认方法,如果实现类当中没有,会向上找接口 a.methodDefault(); // 这是新添加的默认方法 System.out.println("=========="); MyInterfaceDefaultB b = new MyInterfaceDefaultB(); b.methodAbs(); b.methodDefault(); // 实现类B覆盖重写了接口的默认方法 }

6.运行结果:

在这里插入图片描述

转载地址:http://mbezi.baihongyu.com/

你可能感兴趣的文章
做事情要放下面子,拿起责任
查看>>
敏捷开发实践(1)-故事工作量估算导致的问题
查看>>
记一次解决jenkins持续构建,自动部署的问题
查看>>
敏捷开发实践(2)-要不要文档?
查看>>
《java系统性能调优》--2.缓存
查看>>
JAVA注解引发的思考
查看>>
写博意味着什么
查看>>
比较Cint() , int() , fix() ,round()的区别
查看>>
举例说明常用字符串处理函数
查看>>
软件生存期模型
查看>>
制定计划(问题的定义,可行性研究)
查看>>
需求分析
查看>>
软件设计
查看>>
程序编码
查看>>
软件测试
查看>>
软件维护
查看>>
软件项目管理
查看>>
面向过程的分析方法
查看>>
软件设计基础
查看>>
UML的基本结构
查看>>