• java8新特性-默认方法


    作为一个java程序猿,经常会被问基础怎么样,对于这个问题,我理解的有两方面:一是对于java基础的理解和掌握,比如JDK的相关特性;二是工作的经历,毕竟,语言编程是一门实战性质的艺术,就算掌握了千万理论,编写不出实际的代码,等于扯淡。而且,随着技术的革新,很多东西都不再是一成不变的,还记得刚出校门那会儿,面试官会问接口与类的区别啥的,大多人会回答:接口里面的全是抽象方法。这个回答在现在看来,或许已经过时了,随着JDK1.8的推出,接口里面也是可以有方法实现的。所以,在这里总结一下JDK1.8的几个常用的新特性,以备后用。

    java8默认方法通过default关键字实现,在接口中通过default修饰,从而实现在接口中有方法的目的。这个特性可以从某种程度上简化代码量,比如有一个方法,所有的实现都相同,在java8以前,我们需要再接口的实现类中分别写些相同的代码,在java8及以后,我们可以将这个方法抽出来,放在接口中通过default关键字修饰实现,从而简化了代码。

    举个栗子:

    定义接口Car,并实现通用方法engine

     1 public interface Car {
     2     
     3     /**
     4      * @Description: Car引擎
     5      * @return
     6      */
     7     public default void engine() {
     8         System.out.println("all car must have a engine");
     9     }
    10 
    11     /**
    12      * @Description: Car类型
    13      * @return
    14      */
    15     public void type();
    16 }

    实现类:

    1 public class SuvCar implements Car {
    2 
    3     @Override
    4     public void type() {
    5         System.out.println("I'm a suv car");
    6     }
    7 }

    测试类:

    1 public class Test {
    2 
    3     public static void main(String[] args) {
    4         Car car = new SuvCar();
    5         car.engine();
    6         car.type();
    7     }
    8 }
  • 相关阅读:
    MongoDB 副本集搭建 & 副本集扩容
    MongoDB 部署 & 基础命令
    MyBatis常见面试题:#{}和${}的区别是什么?
    MyBatis常见面试题:说说MyBatis的工作原理
    Java四种引用类型回收时机介绍
    Java虚拟机之垃圾回收器
    Servlet中过滤器、监听器和拦截器的区别
    Java里一个线程两次调用start()方法会出现什么情况
    二叉树、二叉查找树、平衡树和红黑树概念及其性质
    转:基于Redis实现延时队列
  • 原文地址:https://www.cnblogs.com/funnyboy0128/p/10083462.html
Copyright © 2020-2023  润新知