1. 一个类的直接父类是唯一的,但是一个类可以同时实现多个接口

public class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB {

// 覆盖重写所有抽象方法

}

2. 实现类没有覆盖重写接口中所有的抽象方法,实现类必须是一个抽象类

3. 实现类实现的多个接口存在重复的抽象方法,实现类只需要实现一次即可

4. 实现类实现的多个接口存在重复的默认方法,实现类必须要重写该默认方法

5. 一个类直接父类的方法,和接口中的默认方法产生冲突,优先父类中的方法

//接口A
public interface MyInterfaceA {
public abstract void methodA(); public abstract void method(); public default void methodDefault(){
System.out.println("默认方法 AAA");
}
} //接口B
public interface MyInterfaceB {
public abstract void methodB(); public abstract void method(); public default void methodDefault(){
System.out.println("默认方法 BBB");
}
} //实现多个接口的类
public class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB { @Override
public void methodA() {
System.out.println("覆盖重写A方法");
} @Override
public void methodB() {
System.out.println("覆盖重写B方法");
} @Override
public void method() {
System.out.println("覆盖重写AB接口重复的抽象方法");
} @Override
public void methodDefault() {
System.out.println("对多个接口中冲突的默认方法覆盖重写");
}
} //抽象实现类
public abstract class MyInterfaceAbstract implements MyInterfaceA, MyInterfaceB {
@Override
public void methodA() { } @Override
public void method() { } @Override
public void methodDefault() { }
}
//父类方法和接口默认方法冲突
public class Fu {
public void method(){
System.out.println("父类中的方法");
}
} //接口
public interface MyInterface {
public default void method(){
System.out.println("接口中的默认方法");
}
} //子类
public class Zi extends Fu implements MyInterface{
} //测试
public class Demo01Interface {
public static void main(String[] args) {
Zi zi = new Zi();
zi.method();
}
}

Java 类实现接口的更多相关文章

  1. 要创建一个EJB,必须要至少编写哪些Java类和接口?

    要创建一个EJB,必须要至少编写哪些Java类和接口? A. 定义远程(或业务)接口 B. 定义本地接口 C. 定义Bean接口 D. 编写Bean的实现 解答:ABC

  2. java类,接口浅谈

    一般类,抽象类,接口的使用场景: 类;共同的特征和行为的抽取和封装 接口:标准,规范(功能的扩展)         需要对某个类进行功能的扩展,就让某个类实现这个接口,抽取出来称为接口   内部类: ...

  3. [Java] 类和接口的初始化步骤 - 继承方面

    类和接口在初始化化时,处理继承层级的方法不一样. 类继承的初始化:通过引用 static 字段,触发某个类的初始化,则声明该字段的类,以及该类的父类被初始化. 接口继承的初始化:通过引用 static ...

  4. Java 类、接口的API

    本章节收集的类/接口API有: Object类,枚举,包装类,接口Comparable,类Arrays,Thread类,System类,Math,BigInteger,Random,日期时间,异常 O ...

  5. 10-01 Java 类,抽象类,接口的综合小练习--运动员和教练

    运动员和教练的案例分析 运动运和教练的案例 代码实现 /* 教练和运动员案例 乒乓球运动员和篮球运动员. 乒乓球教练和篮球教练. 为了出国交流,跟乒乓球相关的人员都需要学习英语. 请用所学知识: 分析 ...

  6. EFFECTIVE JAVA 类和接口

    第十六条:复合优先于继承 //这是一个不好的类---执行的结果 addCount = 4(addAll的实现依赖于HashSet的add方法,InstrumentHashSet方法重写了add方法有执 ...

  7. Java常用类、接口关系图谱

    呕心沥血画出此图,希望在使用Java类.接口时捋顺其关系,从而更好的组织程序逻辑---请看图 Object分出来的类都是其子类 Iterable接口分出的也是子接口 从继承关系分析,其父类实现的接口子 ...

  8. Java类的加载、链接和初始化

    一.Java的类加载机制回顾与总结: 我们知道一个Java类要想运行,必须由jvm将其装载到内存中才能运行,装载的目的就是把Java字节代码转换成JVM中的java.lang.Class类的对象.这样 ...

  9. java 类的加载,链接,初始化

    本篇的话题,讨论Java类的加载.链接和初始化.Java字节代码的表现形式是字节数组(byte[]),而Java类在JVM中的表现形式是java.lang.Class类的对象.一个Java类从字节代码 ...

  10. Android studio无法创建类和接口问题解决办法。提示 Unable to parse template "Class"

    重新配置了studio 的工作环境, 没问题,后来加需求要新增java类和接口,这就出现问题了,新建的时候,就会报错: Unable to parse template "Interface ...

随机推荐

  1. Vue项目安装less和less-loader

    第一步: 查看webpack和webpack-cli是否安装打开cmd,通过命令查看 webpack -v webpack-cli -v 如果没有安装,要先进行安装 可以通过 npm view web ...

  2. C++语言程序设计实验一 类与对象

    Complex.hpp文件源码: #include <iostream> using namespace std; class Complex { public: Complex(floa ...

  3. Vue项目中简易演示axios解耦

    Vue项目中简易演示axios解耦 -api\sug.js (配置获取方法) -utils\request.js (配置自定义axios实例) -vue.config.js (解决跨域) -demo. ...

  4. 数据类型之字符串(string)(三)

    其他操作 1.len():求序列长度,返回数字 a = 'my name is wang'len(a) 返回 15 空格也占一个位置. 2.+:连接2个字符串 >>> b = 'wh ...

  5. FTP传大文件又慢又麻烦,有没有更好的替代传输方案?

    FTP作为常见的文件传输协议已经具有很长的历史,最早可以追溯到上世纪70年代.至今FTP仍然较为活跃,然而许多企业已经开始不满足于FTP的功能局限性,开始另外寻找合适的文件传输产品. 目前数据正在爆炸 ...

  6. VUE学习-表单输入绑定

    表单输入绑定 v-model 可以用 v-model 指令在表单 <input>.<textarea> 及 <select> 元素上创建双向数据绑定. v-mode ...

  7. 使用batch-import工具向neo4j中导入海量数据【转】

    转载备忘 链接:https://www.yisu.com/zixun/496254.html 这篇文章给大家分享的是有关数据库中怎么使用batch-import工具向neo4j中导入海量数据的内容.小 ...

  8. Markdwn学习

    Markdwn学习 标题: 标题 二级标题 三级标题 几个标题有几个#(最多六级标题) 字体 Hell,World! 粗体两边加** Hello,World! 斜体两边加* Hello,World! ...

  9. CF1268B题解

    CF1268B 题解 题目翻译 给你一个杨表,用一个有 \(n\) 个元素的数组 \(a\) 表示杨表每一列的高度.你需要用 \(1 \times 2\) 或 \(2 \times 1\) 的骨牌填充 ...

  10. PaaS和SaaS的区别是什么?

    PaaS是Platform-as-a-Service的缩写,意思是"平台即服务" SaaS是Software-as-a-Service的缩写,意思是"软件即服务" ...