Jdk1.8后的抽象方法和非抽象方法

    package com.abstracted;

    public interface define {
        //jdk1.8之后新增抽象方法abstract和非抽象方法default
        public default void a(){
            System.out.println("这是一个非抽象方法default");
        }
        public abstract void b();
        public static void c(){
            System.out.println("这是一个静态方法");
        }

    }
    class Realization implements define{
        @Override
        public void b() {
            System.out.println("这是一个抽象重写");
        }
    //对非抽象方法重写,则实现类中没有default
        @Override
        public void a() {
            System.out.println("这是一个非抽象重写");
        }
        public static void c(){
            System.out.println("这是一个静态方法不可被重写");
        }
        //要记得静态方法需要静态方法调用
        public  void pool(){
            //调用接口中的defaul方法a
            /*define.super.a();*/
            define.c();

        }
    }
    class invoke{
        public static void main(String[] args) {
            Realization realization = new Realization();
            realization.pool();
            //这了只是调用了静态的接口C方法
            define.c();

        }
    }
posted @ 2022-04-08 09:21  爱豆技术部  阅读(89)  评论(0)    收藏  举报