Java中的接口

简介: Java中的接口

前言

       在家族继承中,子承父业,一个家族企业中,父亲未完成的事业,需要儿子一一实现,如果后来的子孙想要增加一份新的事业,或者没有祖业的人想增加一份新的事业,就需要贵人的相助。在java中,接口,就是这个贵人,当然也可能是多个贵人。

一、接口是什么?

       接口,在java中可以承载的一个或多个抽象方法的类型

               通过 interface 关键字来创建接口。

    一个类通过 implements 关键字,实例化接口,来履行接口的抽象方法。

二、使用方法

1.实操展示

       (1)接口的创建:

                创建 Clothes接口

                       创建material(),style()抽象方法

                       通过 default 关键字,创建use()成员方法

package projectMy;
public interface Clothes {
//通过 interface 关键字创建了一个 Clothes接口
    //声明变量
    //抽象方法
  public void material();
  public void style();
  //创建了两个抽象方法,material(),和style()方法
  default void use() {
      System.out.println("用处:穿");
      //default 关键字,可以在接口中创建成员方法
  }
}

 总结:

               1.接口是隐式抽象的,当声明一个接口的时候,不必使用 abstract 关键字转变抽象

               2.接口中每一个方法都是隐式抽象的,声明时同样不需要 abstract 关键字转变抽象

               3.接口中的方法必须为 public 或 protected,是公有的,方法要被类所落实实现

               4.接口中可以使用 default 关键字,创建 成员方法

(2)接口的实现:

                创建 Jeans 类

                       通过 implements 关键字履行 Clothes 接口

                               实现 material(),style()抽象方法

                               main方法中,调用实现后的material(),,style()方法,接口成员方法,use()方法

package projectMy;
public class Jeans implements Clothes{
  public void material() {
    System.out.println("面料:丹宁布");
    //实现了接口中的 material()方法
  }
  public void style() {
    System.out.println("样式:裤子");
    //实现了接口中的 style() 方法
  }
  public static void main(String[] args) {
    Jeans jean = new Jeans();
    //创建Jeans类对象,调用实现的方法,接口中的成员方法
    System.out.println("牛仔裤");
    jean.material();
    jean.style();
    jean.use();
  }
}

 总结:

               1.类履行接口时,必须实现接口中所有的抽象方法,抽象类除外

               2.类使用 implements 关键字履行接口的抽象方法

               3.类实现接口的语法 (一个类允许履行多个接口)

public class A implements interface1{
    //A类,实现 interface1接口
}
public class B implements interface1,interface2,interface3{
    //B类,实现 interface1,interface2,interface3接口
}

   4.重写接口中声明的抽象方法时,注意:


                       (1)类在实现接口的方法时,不能抛出强制性异常,只能在接口中,或者继承接口的抽象类中抛出该强制性异常


                       (2)类在重写方法时要保持一致的方法名,并且应该保持相同或者相兼容的返回值类型


                       (3)如果实现接口的类是抽象类,不实现该接口的抽象方法,不会报错

(3)接口的继承

                创建父类接口

                       创建抽象方法 useful()方法

package projectMy;
public interface Use {
    //创建了父类接口 Use接口
  public void useful();
    //创建了抽象方法 useful()方法
}

 子类接口继承父类接口,不用实现父类的 useful()抽象方法

package projectMy;
public interface Clothes extends Use{
  public void material();
  public void style();
  //创建了两个抽象方法,material(),和style()方法
  default void use() {
      System.out.println("用处:穿");
      //default 关键字,可以在接口中创建成员方法
  }
}

 总结:

             1.通过 extends 关键字,实现子类接口继承父类接口      

             2.子类接口 不必实现 父类接口的抽象方法

             3.子类接口 允许继承 多个 父类接口        


public interface A extends B,C,D{
    //子类接口A 继承了 三个父类接口B,C,D
}

2.注意事项

       (1)接口与类的区别

                one.概念上,接口不是类,类描述对象的属性和方法;接口包含,类,需要的抽象方法

                two.接口不能被new实例化

                three.接口没有构造方法,成员变量只能有 static 和 final 类型

                four.接口是被类履行,不是被类继承

(2)接口与抽象类的区别

                one.一个子类只能继承一个抽象父类,但可以履行多个抽象父类接口


总结

 本文简单介绍了Java中的接口,具体的用处,需要我们投入于真正的项目实践中了。对“注册和登录账号系统”感兴趣吗?Java语言可以通过正则表达式实现哟。

相关文章
|
1天前
|
存储 安全 Java
Java一分钟之-Map接口与HashMap详解
【5月更文挑战第10天】Java集合框架中的`Map`接口用于存储唯一键值对,而`HashMap`是其快速实现,基于哈希表支持高效查找、添加和删除。本文介绍了`Map`的核心方法,如`put`、`get`和`remove`,以及`HashMap`的特性:快速访问、无序和非线程安全。讨论了键的唯一性、`equals()`和`hashCode()`的正确实现以及线程安全问题。通过示例展示了基本操作和自定义键的使用,强调理解这些概念对编写健壮代码的重要性。
4 0
|
1天前
|
存储 安全 Java
Java一分钟之-集合框架进阶:Set接口与HashSet
【5月更文挑战第10天】本文介绍了Java集合框架中的`Set`接口和`HashSet`类。`Set`接口继承自`Collection`,特征是不允许重复元素,顺序不确定。`HashSet`是`Set`的实现,基于哈希表,提供快速添加、删除和查找操作,但无序且非线程安全。文章讨论了`HashSet`的特性、常见问题(如元素比较规则、非唯一性和线程安全性)以及如何避免这些问题,并提供了代码示例展示基本操作和自定义对象的使用。理解这些概念和注意事项能提升代码效率和可维护性。
8 0
|
1天前
|
存储 安全 算法
Java一分钟之-Java集合框架入门:List接口与ArrayList
【5月更文挑战第10天】本文介绍了Java集合框架中的`List`接口和`ArrayList`实现类。`List`是有序集合,支持元素重复并能按索引访问。核心方法包括添加、删除、获取和设置元素。`ArrayList`基于动态数组,提供高效随机访问和自动扩容,但非线程安全。文章讨论了三个常见问题:索引越界、遍历时修改集合和并发修改,并给出避免策略。通过示例代码展示了基本操作和安全遍历删除。理解并正确使用`List`和`ArrayList`能提升程序效率和稳定性。
6 0
|
1天前
|
Java
【JAVA进阶篇教学】第四篇:JDK8中函数式接口
【JAVA进阶篇教学】第四篇:JDK8中函数式接口
|
2天前
|
Java
Java一分钟之-抽象类与接口的应用场景
【5月更文挑战第9天】Java中,抽象类和接口用于实现多态和抽象。抽象类不能实例化,提供部分实现和定义模板;接口包含无实现的抽象方法,用于定义行为规范和解耦合。选择时,关注行为用接口,部分实现用抽象类。注意抽象类的`final`和`static`方法、接口冲突等问题,明确设计目标,适度抽象,遵循接口设计原则,以提高代码质量。
11 1
|
2天前
|
Java
Java一分钟之-多态性:理解重写与接口
【5月更文挑战第9天】本文介绍了Java中的多态性,主要通过方法重写和接口实现。重写允许子类根据实际类型执行不同实现,关键点包括方法签名相同、访问权限不降低以及final、static和abstract方法不可重写。接口是抽象类型,包含抽象方法,提供另一种多态性实现。常见问题包括混淆重载与重写、不理解动态绑定以及滥用接口。为避免问题,需明确重写目的、合理设计接口,并在使用多态时注意类型检查。多态性是提升代码质量和灵活性的关键。
9 1
|
4天前
|
Java 开发者
在Java中,接口和超类在多态性中扮演着重要的角色
Java中的接口和超类支持多态性,接口作为规范,允许多继承和回调机制;超类提供基类,实现代码重用和方法重写,两者共同促进代码的灵活性和可维护性。
26 10
|
4天前
|
Java
接口在增强Java代码的灵活性方面起着关键作用
Java接口增强代码灵活性,实现多态性、解耦、多继承和扩展性。通过接口,类可隐藏实现细节,实现抽象化,促进模块化和维护性。接口定义方法,允许不同类实现,减少依赖,便于测试和修改。同时,接口提供多继承解决方案,使代码更具扩展性,易于添加新功能。
23 4
|
11天前
|
存储 Java
java IO接口(Input)用法
【5月更文挑战第1天】Java的`java.io`包包含多种输入输出类。此示例展示了如何使用`FileInputStream`从`input.txt`读取数据。首先创建`FileInputStream`对象,接着创建一个字节数组存储读取的数据,调用`read()`方法将文件内容填充至数组。然后将字节数组转换为字符串并打印,最后关闭输入流。注意,`InputStream`是抽象类,此处使用其子类`FileInputStream`。其他子类如`ByteArrayInputStream`、`ObjectInputStream`和`BufferedInputStream`各有特定用途。
21 2
|
11天前
|
NoSQL Java API
java一行代码实现RESTFul接口
Spring Data REST是构建在Spring Data之上的库,可自动将repository转换为REST服务,支持JPA、MongoDB、Neo4j、GemFire和Cassandra。无需手动创建Service和Controller层。要开始,需配置JPA数据源,创建实体类和Repository接口。快速实现REST接口,只需引入spring-boot-starter-data-rest Maven依赖,并在Repository接口上添加@RepositoryRestResource注解。