2-1 JDK8新特性之default 关键字

2-1 JDK8新特性之default 关键字

是什么?

  • jdk8之前,接口里面只能有抽象方法,不能有任何方法实现的。
  • jdk8里面打破了这个规定,引入了新的关键字default,使用default修饰方法,可以在接口里面定义具体的方法实现。接口里面可以定义两种方法实现。默认方法和静态方法。
  • 也就是接口中可以包含方法体,这打破了Java之前版本对接口的语法限制,从而使得接口在进行扩展的时候,不会破坏与接口相关的实现类代码。

有什么用?

  • 往现存接口中添加新的方法,即不强制那些实现了该接口的类也同时实现这个新加的方法。

使用示例

  • 定义一个接口,并声明一个default方法
// 定义接口
public interface Animal {

    void run();

    void eat();
	
    // 这是默认方法
    default void breath(){
        System.out.println("使用氧气呼吸");
    }
	
    // 这是静态方法
    static void test(){
        System.out.println("这个是静态方法");
    }
}
  • 实现Animal的实现类
// 实现类,可以看到在该实现类中只需实现 run() 和 eat() 方法
public class Dog implements Animal{
    @Override
    public void run() {
        System.out.println("dog 跑");
    }

    @Override
    public void eat() {
        System.out.println("dog 吃");
    }
}
  • 测试类
public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.eat();
        dog.run();
        dog.breath();
//        dog.test() 该方法报错
        Animal.test();
    }
}
  • 测试结果
    测试结果

未经授权不得转载或转载请注明出处

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值