Java接⼝interface的实现⽅法JDK1.8中为了加强接⼝的能⼒,使得接⼝可以存在具体的⽅法。
前提是⽅法需要被default或static关键字所修饰。
下⾯我们直接上实例
1.定义⼀个接⼝ TestInterface,我们在定义两个具体实现的⽅法,分别⽤static和default修饰package test;
public interface TestInterface {
static void showStatic(String s) {
System.out.println("this is staticshow !"+s);
}
default void showDefault(String s) {
java接口有没有构造方法System.out.println("this is showDefault method"+s);
}
//报错
// public void showPublic(String s) {
// System.out.println("this is showPublic method"+s);
// }
void sayHi();
}
2.定义⼀个实现类InterfaceDemotest 实现该接⼝
package test;
public class InterfaceDemotest implements TestInterface{
public static void main(String args[]) {
InterfaceDemotest t = new InterfaceDemotest();
t.sayHi();
t.showDefault("⼤神!");
TestInterface.showStatic("⼤佬!");
}
}
3.⼦类可以被重写接⼝中default⽅法
public void showDefault(String s) {}{
System.out.println("⼦类重写");
}
4.注意:关键字default和类中没有修饰(default)的⽅法不⼀样
这⾥的关键字default不要跟平时我们在类中定义⽅法时,没有加任何访问修饰符时的(default)相混淆,它们的意义是不⼀样的.
这⾥的指的是⼀种场景,既类中成员(⽅法、变量)没有被访问修饰符修饰,所以属于(default)的情况,效果是这类成员只能在类所在的包内被访问。
//没有访问修饰符修饰,所以默认为(default),
//跟加了关键词的default是不⼀样的,⼀般的类加 default 修饰⽅法会直接报错
void test() {
System.out.println("没有修饰符");
}
附加知识点:
1.以下是各版本的名称及发布⽇期:
版本名称发⾏⽇期
JDK 1.1.4Sparkler(宝⽯)1997-09-12
JDK 1.1.5Pumpkin(南⽠)1997-12-13
JDK 1.1.6Abigail(阿⽐盖尔–⼥⼦名)1998-04-24
JDK 1.1.7Brutus(布鲁图–古罗马政治家和将军)1998-09-28
JDK 1.1.8Chelsea(切尔西–城市名)1999-04-08
J2SE 1.2Playground(运动场)1998-12-04
J2SE 1.2.1none(⽆)1999-03-30 J2SE 1.2.2Cricket(蟋蟀)1999-07-08 J2SE 1.3Kestrel(美洲红隼)2000-05-08 J2SE 1.3.1Ladybird(瓢⾍)2001-05-17 J2SE 1.4.0Merlin(灰背隼)2002-02-13 J2SE 1.4.1grasshopper(蚱蜢)2002-09-16 J2SE 1.4.2Mantis(螳螂)2003-06-26 Java SE 5.0 (1.5.0)Tiger(⽼虎)2004-09-30 Java SE 6.0 (1.6.0)Mustang(野马)2006-04 Java SE 7.0 (1.7.0)Dolphin(海豚)2011-07-28 Java SE 8.0 (1.8.0)Spider(蜘蛛)2014-03-18 Java SE 92017-09-21 Java SE 102018-03-14 [3] 2.jdk1.8新特性
1. Java 8允许我们给接⼝添加⼀个⾮抽象的⽅法实现,只需要使⽤ default关键字即可。
2. 新增lambda表达式
3. 提供函数式接⼝
4. Java 8 允许你使⽤ :: 关键字来传递⽅法或者构造函数引⽤
5. 我们可以直接在lambda表达式中访问外层的局部变量。
创造价值,乐在分享。
欢迎加⼊我的Java与Android逆向开发交流QQ,提问学习。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论