Java学习笔记--接口:接口的介绍,接口的定义以及使用,接口中的成员

目录

一,接口的介绍

二,接口的定义以及使用

三,接口中的成员

1,抽象方法

2,默认方法

3.静态方法


题外话:IDEA在有时会出现莫名的自动导包错误,原因不明,被坑了很多次,注意导包问题

一,接口的介绍

1.接口:是一个引用数据类型,是一种标准,规则
2.关键字:
   interface 接口
      public interface 接口名{}
  implements 实现
      实现类 implements 接口名{}

3.接口中可以定义的成员:
   jdk7以及之前:
     抽象方法: public abstract  -> 即使不写public abstract,默认也有
     成员变量:public static final 数据类型 变量名 = 值-> 即使不写public static final,默认也有
                    final是最终的,被final修饰的变量不能二次赋值,所以我们一般将final修饰的变量视为常量

   jdk8:
      默认方法:public default 返回值类型 方法名(形参){}
      静态方法:public static 返回值类型 方法名(形参){}

   jdk9开始:
     私有方法:
        private的方法

二,接口的定义以及使用

1.定义接口:
  public interface 接口名{}
2.实现:
  public class 实现类类名 implements 接口名{}
3.使用:
  a.实现类实现接口
  b.重写接口中的抽象方法
  c.创建实现类对象(接口不能直接new对象)
  d.调用重写的方法    

示例,写一个USB接口

public interface USB {
    public abstract void open();
    public abstract void close();
}

Mouse实现类

public class Mouse implements USB {
    @Override
    public void open() {
        System.out.println("鼠标打开");

    }

    @Override
    public void close() {
        System.out.println("鼠标关闭");
    }
}

测试类

public class test {
    public static void main(String[] args) {
        Mouse mouse = new Mouse();
        mouse.open();
        mouse.close();
    }
}

运行示例

三,接口中的成员

1,抽象方法

1.定义格式:
  public abstract 返回值类型 方法名(形参);
2.注意:
  不写public abstract 默认也有
3.使用:
  a.定义实现类,实现接口
  b.重写抽象方法
  c.创建实现类对象,调用重写的方法

继续用上一个例子

首先接口

不同的是这次的返回值类型是String

public interface USB {
    public abstract void open();
    String close();
}

实现方法

public class Mouse implements USB{
    @Override
    public void open() {
        System.out.println("鼠标打开");
    }

    @Override
    public String close() {
        return "鼠标关闭";
    }
}

测试类

public class test {
    public static void main(String[] args) {
        Mouse mouse = new Mouse();
        mouse.open();
        String result = mouse.close();
        System.out.println("result = " + result);
    }
}

结果

2,默认方法

1.格式:
  public default 返回值类型 方法名(形参){
      方法体
      return 结果
  }
2.使用:
  a.定义实现类,实现接口
  b.默认方法可重写,可不重写
  c.创建实现类对象,调用默认方法 

如法炮制

首先不重写的

public interface USB {
    public default void methodDef(){
        System.out.println("我是默认方法");
    }

}
public class Mouse implements USB {
    

}
public class test {
    public static void main(String[] args) {
        Mouse mouse = new Mouse();
        mouse.methodDef();
    }
}

结果

实现类是空的不舒服,那么重写一下

报错了,因为default只能出现在接口中,不能用在这里

去掉后,那么他还是重写吗

是,证明default的特殊性

并且在实现类中重写方法会改变结果

3.静态方法

1.定义格式:
  public static 返回值类型 方法名(形参){
      方法体
      return 结果
  } 

2.使用:
  接口名直接调用

在默认方法中说明

USB接口中

public interface USB {
    //默认方法
    public default void methodDef(){
        System.out.println("我是默认方法");
    }
    //静态方法
    public static void methodSta(){
        System.out.println("我是接口中的静态方法");
    }

}

测试类

public class test {
    public static void main(String[] args) {
        Mouse mouse = new Mouse();
        mouse.methodDef();

        System.out.println("==================");
        USB.methodSta();
    }
}

结果

静态方法简单快速

> 默认方法和静态方法在开发中 -> 可以作为临时加的一个小功能来使用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值