码迷,mamicode.com
首页 > 其他好文 > 详细

JDK8.0接口中的默认方法和静态方法

时间:2018-09-12 23:04:29      阅读:378      评论:0      收藏:0      [点我收藏+]

标签:pre   bsp   extend   icm   接口   继承   new   sys   col   

我们在接口中通常定义的方法是抽象方法,即没有方法体,只有返回值类型和方法名:(public abstract) void Method();

类在实现接口的时候必须重写抽象方法才可以

jdk8中新加的默认方法和静态方法是什么呢?

可以通俗理解:静态方法属于类,调用静态方法通过接口名曲调用它,默认方法在实现类中可以重写,可以不重写

;默认方法,在接口中定义,区别抽象方法,有方法体
public interface DefaultStaticInterface {
    //普通方法,类实现接口必须重写它
    abstract void Method();

    //默认方法在类实现接口时候可以不重写,也可以重写
    public default void defaultMethod() {
        System.out.println("这是接口定义的默认方法,实现接口可以不重写他");
    }

    ;

    //静态方法是属于接口的,调用它必须用接口调用
    public static void staticMethod() {
        System.out.println("这是接口的静态方法");
    }

    ;

}
//探索静态方法 默认方法是否可以被继承
interface ExtendInterface extends DefaultStaticInterface{
    void speak();
}

class Test implements DefaultStaticInterface {
    @Override
    public void Method() {
        System.out.println("重写了类中定义的抽象方法Method");
    }

    @Override
    public void defaultMethod() {
        System.out.println("这里选择性的重写了了接口中的默认方法defaultMethod()");
    }

    //静态方法,通过接口定义
    public static void main(String[] args) {
        //静态方法的调用
        DefaultStaticInterface.staticMethod();
        Test test = new Test();
        test.Method();
        test.defaultMethod();
    }
}
class Test01 implements ExtendInterface{
    @Override
    public void speak() {
        System.out.println("重写speak方法");
    }

    @Override
    public void Method() {
        System.out.println("重写父类中的抽象方法");
    }

    @Override
    public void defaultMethod() {
        System.out.println("重写父类接口中的默认方法");
    }
    //可以知道,子类接口中的默认方法是可以继承的,但是静态方法始终是属于父类接口的,通过父类接口调用
    public static void main(String[] args) {
        Test01 test01=new Test01();
        test01.Method();
        test01.defaultMethod();
        DefaultStaticInterface.staticMethod();
        
    }
}

 

JDK8.0接口中的默认方法和静态方法

标签:pre   bsp   extend   icm   接口   继承   new   sys   col   

原文地址:https://www.cnblogs.com/doudou2018/p/9637696.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!