Java8 新特性 学习笔记(二)

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

今天的学习暂时到这里啦,接口方法的知识点感觉相对少一点,后续学习新的,会补上分享。如有不正之处,欢迎指正!万分感谢!

学习博客:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值