Java interface 接口 新特性
1 package com.bytezreo.interfacetest;
2
3 public class SubClass2 {
4 public static void main(String[] args) {
5 SubClass s = new SubClass();
6 //s.method1();
7 //SubClass.method1();
8
9 //接口中定义的静态方法,只能通过接口来调用。
10
11 InterfaceTest2.method1();
12
13 //通过实现类的对象,可以调用接口中的默认方法
14 //如果实现类重写了接口中的默认方法,调用时,仍然调用的是重写以后的方法。
15 s.method2();
16
17 //如果 子类(或实现类)继承的父类和实现的接口中声明了同名同参数的方法,
18 //那么子类在没有重写此方法的情况下,默认调用的是父类中同名同参的方法
19 // ------->类优先原则
20
21 //如果实现类 实现了多个接口,而这个多个接口定义了同名同参数的方法,
22 //那么在实现类没有重写此方法的情况下,报错----->接口冲突
23
24 //必须在实现类中重写此方法
25 s.method3();
26
27 //SubClass.method2();
28
29
30
31 }
32
33 }
34 class SubClass extends SuperClass implements InterfaceTest2,CompareB{
35
36 public void method2() {
37
38 System.out.println("SubClass:上海");
39 }
40
41 @Override
42 public void method3() {
43
44 System.out.println("SubClass:深圳");
45 }
46 //如何在子类(实现类)的方法中调用父类,接口被重写的方法
47 public void myMethod() {
48
49 method3(); //自己定义的重写方法
50 super.method3(); // 调用父类中声明的方法
51
52 //调用接口中的默认方法
53 InterfaceTest2.super.method3();
54 CompareB.super.method3();
55
56
57 }
58
59
60
61 }
1 package com.bytezreo.interfacetest;
2
3 /**
4 *
5 * @Description interface 接口 新特性
6 * @author Bytezero·zhenglei! Email:420498246@qq.com
7 * @version
8 * @date 下午11:06:32
9 * @
10 * 还可以定义 静态方法 默认方法
11 */
12 public interface InterfaceTest2 {
13
14 //静态方法
15 public static void method1() {
16
17 System.out.println("CompareA:北京");
18 }
19
20 //默认方法
21 public default void method2() {
22
23 System.out.println("CompareA:上海");
24 }
25
26 default void method3() {
27
28 System.out.println("CompareA:上海");
29 }
30
31
32 }
1 package com.bytezreo.interfacetest;
2
3 public class SuperClass {
4
5 public void method3(){
6
7 System.out.println("SuperClass:北京");
8 }
9
10 }
1 package com.bytezreo.interfacetest;
2
3 public interface CompareB {
4
5 default void method3(){
6
7 System.out.println("CompareB:上海");
8 }
9
10 }

Java interface 接口 新特性的更多相关文章
- [转] Java 8的新特性
简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性.在本文中我们将学习这些新特性,并用实际的例子 ...
- Java 8的新特性—终极版
作者:杜琪[译] 原文链接:http://www.jianshu.com/p/5b800057f2d8 1. 简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本 ...
- Java 9和Java 10的新特性
http://www.infoq.com/cn/news/2014/09/java9 Java 9新特性汇总 继2014年3月份Java 8发布之后,Open JDK加快了开发速度, Java 9的发 ...
- Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结
Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结 1.1. Java的编年史2 ...
- JDK 15 JAVA 15的新特性展望
目录 JEP 371: Hidden Classes JEP 372: 删除 Nashorn JavaScript Engine JEP 377: 新的垃圾回收器ZGC正式上线了 JEP 378: T ...
- Java 接口 新特性(Java8)
Java8新特性之接口增强 在Java7以及以前的版本中,接口里的方法都是抽象的,并且不存在静态方法,属性默认修饰符是public static final.所有方法的声明都是public [返回类型 ...
- Java JDK1.8新特性之四大函数式接口
JDK 1.8的一些新特性 四大核心函数式接口(Consumer.Predicate.Supplier.Function),结合lambda表达式 import java.util.ArrayList ...
- Java 新特性(5) - Java EE 5 新特性
Java EE 5 由 Java Community Process 通过 Java Specification Request 244 发布,这个 “总纲” JSR 指出了详细描述 Java EE ...
- Java JDK5.0新特性
JDK5.0新特性 虽然JDK已经到了1.8 但是1.5(5.0)的变化是最大的 1. 增强for循环 foreach语句 foreach简化了迭代器 作用: 对存储对象的容器进行迭代 (数组, co ...
- Java8接口新特性
概述 Java 8中,你可以为接口添加静态方法和默认方法.从技术角度来说,这是完全合法的,只是它看起来违反了接口作为一个抽象定义的理念.猜想设计初衷可能使为了兼容8以下的jdk Java8出来了个函数 ...
随机推荐
- Git - 关联远程仓库以及同时使用Lab和Hub
更新一下,感觉有更简单的方式 就比如你git config 的 全局的name和email是lab的 那就clone github上的项目然后设置局部的name和email就行了 ********** ...
- .NET Core(C#) PadLeft和PadRight特定格式字符串长度补齐的方法和js中如何填充字符串
.NET Core(C#) 1、PadLeft和PadRight使用说明 两个方法都是对字符串格式化进行补齐填充,PadLeft是左边,而PadRight是右边 '1010'.PadLeft(10,' ...
- Docker 安装与升级
卸载旧版本 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest ...
- 应对数据爆炸时代,揭秘向量数据库如何成为AI开发者的新宠,各数据库差异对比
应对数据爆炸时代,揭秘向量数据库如何成为AI开发者的新宠,各数据库差异对比 随着大模型的爆火,向量数据库也越发成为开发者关注的焦点.为了方便大家更好地了解向量数据库,我们特地推出了<Hello, ...
- [转发]MySQL安装配置教程(超级详细、保姆级)
MySQL安装配置教程(超级详细.保姆级)_SoloVersion的博客-CSDN博客_mysql安装配置教程一. 下载MySQLMysql官网下载地址https://downloads.mysql. ...
- Windows 10 ISO原版镜像文件下载(2024年01月)
Windows 10 (business editions), version 22H2 (x64) - DVD (Chinese-Simplified) 链接:https://pan.baidu.c ...
- (C语言)每日代码||2023.12.23||for循环的循环条件部分可以是数字
#include <stdio.h> int main() { int i = 3; for (i; i; i--) { printf("%d\n", i); } // ...
- 尴尬:在zoom中找不到会议密码
临时要开一个zoom会议,点击"新会议"进入,然后邀请其他与会者. "会议" - "复制邀请链接", 得到一行这样的信息(会议号已模糊处理) ...
- mysql数据库应用
一:安装数据库管理工具 1.进入navicat官网https://navicat.com.cn/ 2.下载navicat for mysql,选免费试用也可直接购买 3.安装好后一直点下一步即可 二: ...
- 《ASP.NET Core 微服务实战》-- 读书笔记(第5章)
第 5 章 创建数据服务 选择一种数据存储 由于我坚持要尽可能的跨平台,所以我决定选用 Postgres,而不用 SQL Server 以照顾 Linux 或 Mac 电脑的读者 构建 Postgre ...