java学习随笔---接口

灰太狼 2021-11-26 14:06 439阅读 0赞

接口的概念:接口就是一种公共的规范标准,只要符合标准,大家就可以通用。

1.接口定义的基本格式

public interface 接口名称{
//接口内容
}

在这里插入图片描述

2.接口的抽象方法的定义

  • 接口中的抽象方法,修饰符必须是两个固定的关键字 public abstract;
  • 这两个固定的关键字可以选择性地省略;
  1. public interface Demo03InterfaceAbs {
  2. public abstract void methodAbs1();
  3. abstract void methodAbs2();
  4. public void methodAbs3();
  5. void methodAbs4();
  6. }

3.接口的使用步骤

  1. 接口不能直接使用,必须有一个实现类实现该接口。
    格式:public class 实现类名称 implements 接口名称{
    }
  2. 接口的实现类必须覆盖重写接口中的所有抽象方法。
  3. 创建实现类对象进行使用。

接口

  1. public interface Demo03InterfaceAbs {
  2. public abstract void methodAbs1();
  3. }

实现类

  1. public class Demo03InterfaceAbsImpl implements Demo03InterfaceAbs {
  2. @Override
  3. public void methodAbs1() {
  4. System.out.println("这是接口的实现类");
  5. }
  6. }

实现类的对象

  1. public class abs {
  2. public static void main(String[] args) {
  3. Demo03InterfaceAbsImpl impl = new Demo03InterfaceAbsImpl();
  4. impl.methodAbs1();
  5. }
  6. }

4.接口的默认方法

5.接口的静态方法

  • 格式:public static 返回值类型 方法名称(参数列表){
    }
  • 不能通过接口实现类对象调用接口中的静态方法。
  • 正确做法应该是通过接口名称直接调用静态方法。格式:接口名称.静态方法名(参数);
  1. 接口
  2. public interface MyInterfaceStatic {
  3. public static void staticMethod(){ //接口中静态方法的定义格式
  4. System.out.println("接口中的静态方法执行了");
  5. }
  6. }
  7. 实现类
  8. public class MyInterfaceStaticImpl implements MyInterfaceStatic{
  9. }
  10. 实现类对象
  11. public class staticMain {
  12. public static void main(String[] args) {
  13. MyInterfaceStatic.staticMethod();//不用创建对象直接通过类名.方法名调用
  14. }
  15. }

6.接口的私有方法

  • 目的就是为了解决两个默认方法或两个静态方法之间的代码重复问题。
  • 普通私有方法,解决多个默认方法之间的代码重复问题。
    格式:private 返回值类型 方法名称(参数列表){
    }
  • 静态私有方法,解决多个静态方法之间代码重复的问题
    格式:private static 返回值类型 方法名称(参数列表){
    }静态再调用的时候不用创建对象,只需要类名.方法名就行
  1. 接口
  2. public interface MyInterfacePrivate {
  3. public default void method1 (){
  4. System.out.println("我是jhon");
  5. /* System.out.println("AAA"); System.out.println("BBB"); System.out.println("CCC");*/
  6. methodCommon();//将重复的部分抽取出来,写成私有方法,然后再默认方法中调用私有方法
  7. }
  8. public default void method2 (){
  9. System.out.println("我是tom");
  10. /* System.out.println("AAA"); System.out.println("BBB"); System.out.println("CCC");*/
  11. methodCommon();//将重复的部分抽取出来,写成私有方法,然后再默认方法中调用私有方法
  12. }
  13. private void methodCommon(){
  14. System.out.println("AAA");
  15. System.out.println("BBB");
  16. System.out.println("CCC");
  17. }
  18. }
  19. 实现类
  20. public class MyInterfacePrivateImpl implements MyInterfacePrivate{
  21. }
  22. 实现类对象
  23. public class mainPrivate {
  24. public static void main(String[] args) {
  25. MyInterfacePrivateImpl impl = new MyInterfacePrivateImpl();
  26. impl.method1();
  27. impl.method2();
  28. }
  29. }

7.接口常量定义和使用

格式public static final 数据类型 名称 = 值;
一旦使用了final关键字,说明接口中的常量不可修改;
接口中常量必须进行赋值。
接口中常量的名称尽量使用大写,如果多个英文的话中间用_隔开。

  1. 接口
  2. public interface MyInterfaceConst {
  3. public static final int NUM = 10;
  4. }
  5. public interface MyInterfaceConst {
  6. public static final int NUM = 10;
  7. }

注意
在这里插入图片描述

接口与接口之间的多继承

  • 类与类之间是单继承的。直接父类只有一个。
  • 类与接口之间是多实现的。一个类可以实现多个接口。
  • 接口与接口之间是多继承的。

注意

  1. 多个父接口当中的抽象方法如果重复,没关系;
  2. 多个父接口当中的默认方法如果重复,那么子接口必须进行默认方法的覆盖 重写。而且带着default关键字。

    父类1
    public interface MyInterfaceA {

    1. public default void methodA(){
    2. System.out.println("AAA");
    3. }

    }

    父类2
    public interface MyInterfaceB {

    1. public default void methodA(){
    2. System.out.println("BBB");
    3. }

    }

    子类同时有父类两个相同的默认方法,、需要覆盖重写
    public interface MyInterface extends MyInterfaceA,MyInterfaceB {

    1. @Override
    2. default void methodA() {
    3. }

    }

发表评论

表情:
评论列表 (有 0 条评论,439人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JAVA 接口 随笔

    接口:初期理解可以认为是一个特殊的抽象类 当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示 class用于定义类 interface用于定义接口 接口

    相关 css学习随笔

    清除浮动 一般会再body的底部再加一个div,里面不用放内容 <div class="clr"> </div> 样式: .clr\{      clear:bo

    相关 Java学习随笔

    标识符 · 标识符必须以字母、下划线\_、美元符号$开头。 · 标识符其它部分可以是字母、下划线“\_”、美元符“$”和数字的任意组合。 · Java 标识符大小写敏

    相关 java学习随笔---接口

    接口的概念:接口就是一种公共的规范标准,只要符合标准,大家就可以通用。 1.接口定义的基本格式 > public interface 接口名称\{ > //接口内容