Java8 默认方法
默认方法就是 接口 可以有实现方法,而且不需要实现类去实现其方法。
==>>>我们只需在方法名前面加个 default 关键字即可实现默认方法
语法格式
public interface lab01 {
default void print(){
System.out.println("hello");
}
}
栗子
package test0222;
public class lab0222 {
public static void main(String[] args) {
lei leiTest = new lei();
leiTest.print();
leiTest.printJiekou();
}
}
package test0222;
public class lei implements jiekou{
public void print() {
System.out.println("lei");
}
}
package test0222;
public interface jiekou {
default void printJiekou() {
System.out.println("jiekou");
}
}
输出:
lei
jiekou
当一个类有多个接口,且接口有相同的默认方法时
//写一起有错误
public interface lab01{
default void print(){
System.out.println("A");
}
}
public interface lab02{
default void print(){
System.out.println("B");
}
}
//方案一 创建自己的默认方法,来覆盖重写接口的默认方法
public class lab implements lab01, lab02{
default void print(){
System.out.println("hello");
}
}
//方案二 使用 super 来调用指定接口的默认方法
public class lab implements lab01, lab02{
public void print(){
lab01.super.print();
}
}
栗子进化1.0
package test0222;
public class lab0222 {
public static void main(String[] args) {
lei leiTest = new lei();
leiTest.print();
leiTest.printJiekou();
leiTest.printJiekout(); //新增
}
}
package test0222;
public class lei implements jiekou,jiekout{ //attention
public void print() {
System.out.println("lei");
}
}
package test0222;
public interface jiekou {
default void printJiekou() {
System.out.println("jiekou");
}
}
package test0222;
public interface jiekout { //attention
default void printJiekout() {
System.out.println("jiekout");
}
}
输出:
lei
jiekou
jiekout
默认静态方法
接口 可以声明(并且可以提供实现)静态方法
语法格式
package test0222;
public interface jiekou {
default void printJiekou() {
System.out.println("jiekou");
}
static void jingtai() { //attention
System.out.println("jingtai");
}
}
栗子进化2.0
package test0222;
public class lab0222 {
public static void main(String[] args) {
lei leiTest = new lei();
leiTest.print();
leiTest.printJiekou();
leiTest.printJiekout();
jiekou.jingtai();
}
}
package test0222;
public class lei implements jiekou,jiekout{
public void print() {
System.out.println("lei");
}
}
package test0222;
public interface jiekou {
default void printJiekou() {
System.out.println("jiekou");
}
static void jingtai() {
System.out.println("jingtai");
}
}
package test0222;
public interface jiekout {
default void printJiekout() {
System.out.println("jiekout");
}
}
输出:
lei
jiekou
jiekout
jingtai
今天的学习暂时到这里啦,接口方法的知识点感觉相对少一点,后续学习新的,会补上分享。如有不正之处,欢迎指正!万分感谢!
学习博客: