Java基础00-接口组成更新31

1. 接口组成更新

1.1 接口组成更新概述

   

  

1.2 接口中默认方法

  
代码示例:

需求:

  • 1:定义一个接口MyInterface,里面有两个抽象方法:

  void show1();
  void show2();

  • 2:定义接口的实现类:

  MyInterfaceImpl

  • 3:定义测试类:

  MyInterfaceDemo
  在主方法中,按照多态的方式创建对象并使用
接口MyInterface:

//1:定义一个接口MyInterface,里面有两个抽象方法:
//        void show1();
//        void show2();
public interface MyInterface {
    void show1();

    void show2();
    
    //default默认方法,可以使实现类不用实现该方法。
    //还可以直接定义方法内容
    default void show3() {
        System.out.println("One show3");
    }
}

定义接口的实现类:

//2:定义接口的实现类:
//MyInterfaceImpl
public class MyInterfaceImpl implements MyInterface {

    @Override
    public void show1() {
        System.out.println("One show1");
    }

    @Override
    public void show2() {
        System.out.println("One show2");
    }
    
    //实现类中并没有实现show3方法,但是也没有报错。    
}

定义测试类:

//3:定义测试类:
//MyInterfaceDemo
//在主方法中,按照多态的方式创建对象并使用
public class MyInterfaceDemo {
    public static void main(String[] args) {
        MyInterface my = new MyInterfaceImpl();
        my.show1();
        my.show2();

        // 如果想要添加一个新的接口方法,但是别的实现类又不要实现它,怎么办?
        // 在接口中使用default
        my.show3();
    }
}

运行结果:

  

show3方法也可以被重写这里就不写示例了。

1.3 接口中静态方法

  
代码示例:

需求:

  • 1:定义一个接口Inter,里面有三个方法:一个是抽象方法,一个是默认方法,一个是静态方法

  void show();
  default void method(){ }
  public static void test(){ }

  • 2:定义接口的一个实现类:

  InterImpl

  • 3:定义测试类:

  InterDemo
  在主方法中,按照多态的方式创建对象并使用
接口Inter

//1:定义一个接口Inter,里面有三个方法:一个是抽象方法,一个是默认方法,一个是静态方法
//void show();
//default void method(){ }
//static void test(){ }
public interface Inter {
    void show();

    default void method() {
        System.out.println("Inter 中的默认方法执行了");
    }

    static void test() {
        System.out.println("Inter 中的静态方法执行了");
    }
}

实现类InterImpl

//2:定义接口的一一个实现类:
//InterImpl
public class InterImpl implements Inter {

    @Override
    public void show() {
        System.out.println("show方法执行了");
    }
}

测试类:

//3:定义测试类:
//InterDemo
//在主方法中,按照多态的方式创建对象并使用
public class InterDemo {
    public static void main(String[] args) {
        Inter i = new InterImpl();
        i.show();
        i.method();
        // 接口中的静态方法只能由类名调用,这样的为了防止一个实现类实现两个接口,但是两个接口中又有同名称的静态方法。
//        i.test();
        Inter.test();
    }
}

运行结果:

1.4 接口中私有方法

  

posted on 2021-04-21 15:26  花溪月影  阅读(73)  评论(0编辑  收藏  举报