JAVA中接口的实现

简介: JAVA中接口的实现

一、前言

  • 学习概述:本文讲解Java接口的定义实现作用等
  • 学习目标:掌握Java接口实现多重继承的意义

二、Java接口的定义

1.概述

接口是一种特殊的抽象类,是Java提供的一个重要的功能,与抽象类不同的是:

  • 接口的所有数据成员都是静态的且必须初始化。
  • 接口中的所有方法必须都是抽象方法,不能有一般的方法。
[public] interface 接口名称 [extends  父接口名列表]
{
  [public] [static] [final]数据类型 成员变量名 = 常量;
  ...
  [public][abstract]返回值数据类型 方法名(参数表);
  ...
}

2.接口的实现

接口和抽象类一样不能用来实例化对象,必须借用接口的特征创建出来一个新的类,然后用新的类来实例化对象。

  • 特点
  • 利用接口创建新的类的过程称为接口的实现。
  • 实现一个接口的过程使用implements关键字。

代码:

class 类名称 implements 接口名表
{
    ...
}

3.接口的引用

接口可以作为一种引用类型来使用,任何实现该接口的类实例化的对象都可以储存在该接口类型的变量中,通过这些变量访问类所实现的接口中的方法。

4.总结

可以利用实现接口来完成Java语言的多重继承,同时,规避了C++语言多重继承时产生歧义的问题。

三、接口的继承

  • 定义:接口和类一样也可以使用继承派生出来新的类。也可以通过extends关键字来实现,被继承的接口称为父接口,派生出来的新接口称为子接口。但是不同的是,一个子接口可以同时有多个直接父接口。它们之间用逗号分隔。子接口继承父接口的所有变量和方法。

样例:

interface A{
    abstract void print1();
}
interface B extends A{
    abstract void print2();
}
class C implements B{
    public void print1(){
        System.out.print("Hello");
    }
    public void print2(){
        System.out.print("World");
    }
}
public class Print{
    public static void main(String[] args){
        B b=new C();
        b.print1();
        b.print2();
    }
}

四、利用接口实现多重继承

由于Java不支持多重继承,所以可以利用接口实现类似于多重继承的机制,同时规避了C++多重继承中存在很多歧义的问题,使代码更加简洁,逻辑清晰,安全可靠。`一个类只能有一个直接父类,但是它可以同时实现多个接口`,可以把接口理解为类,即实现了Java类的多重继承。

1.问题描述

  • 需求:通过实现接口计算圆柱的体积
  • 例如:圆柱体的体积=157.0

2.问题解析

提示:利用实现Java接口的方法实现Java多重继承

3.编码实现

//filename:Cylinder.java
interface Face1{
    final double PI=3.14;
    abstract double area();
}
interface Face2{
    abstract void volume();
}
public class Cylinder implements Face1,Face2{
    private double radius;
    private int height;
    public Cylinder(double r,int h){
        radius=r;
        height=h;
    }
    public double area(){
        return PI*radius*radius;
    }
    public void volume(){
        System.out.print("圆柱体的体积="+this.area()*height);
    }
    public static void main(String[] args){
        Cylinder volu=new Cylinder(5.0,2);
        volu.volume();
    }
}

4.输出结果

圆柱体的体积=157.0

五、常见问题

  • 接口就是公共的行为规范标准,大家在实现时,只要符合规范标准,就可以通用。 在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。
  • 接口一定是抽象的,不能在接口中实例化对象
相关文章
|
11天前
|
存储 算法 Java
滚雪球学Java(65):深入理解Java中的Map接口:实现原理剖析
【6月更文挑战第19天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
14 3
滚雪球学Java(65):深入理解Java中的Map接口:实现原理剖析
|
1天前
|
Java 开发者
Java中的Lambda表达式与函数式接口
【6月更文挑战第28天】在现代的Java编程实践中,Lambda表达式和函数式接口已经成为提升代码简洁性和可读性的重要工具。本文将深入探讨Lambda表达式的基本概念、语法结构以及如何与函数式接口结合使用,旨在帮助开发者更好地理解和运用这一特性,以编写出更加优雅和高效的Java代码。
|
4天前
|
Java API 开发者
探索Java中的Lambda表达式和函数式接口
【6月更文挑战第25天】在Java的世界里,Lambda表达式的引入标志着一种全新的编程范式——函数式编程。本文将通过深入解析Lambda表达式及其与函数式接口的结合使用,带领读者领略这一特性如何简化代码,提升开发效率。
|
9天前
|
Java
Java中Comparable接口和Comparator接口的区别(如果想知道Java中Comparable接口和Comparator接口的区别,那么只看这一篇就足够了!)
Java中Comparable接口和Comparator接口的区别(如果想知道Java中Comparable接口和Comparator接口的区别,那么只看这一篇就足够了!)
|
6天前
|
Java
Java中,有两种主要的方式来创建和管理线程:`Thread`类和`Runnable`接口。
【6月更文挑战第24天】Java创建线程有两种方式:`Thread`类和`Runnable`接口。`Thread`直接继承受限于单继承,适合简单情况;`Runnable`实现接口可多继承,利于资源共享和任务复用。推荐使用`Runnable`以提高灵活性。启动线程需调用`start()`,`Thread`直接启动,`Runnable`需通过`Thread`实例启动。根据项目需求选择适当方式。
18 2
|
11天前
|
设计模式 Java 容器
在Java中调用一个接口的多个实现类
在Java中调用一个接口的多个实现类
19 4
|
9天前
|
Java API
java调用个人微信API接口收发朋友圈,删除评论朋友圈
java调用个人微信API接口收发朋友圈,删除评论朋友圈
|
3天前
|
Java 编译器
论Java中的抽象类与接口
论Java中的抽象类与接口
|
5天前
|
Arthas 监控 Java
Java项目方法调用链路耗时追踪(接口优化)
Java项目方法调用链路耗时追踪(接口优化)
7 0
|
5天前
|
Java 机器人 关系型数据库
Java中的类与接口:抽象与实现的艺术
Java中的类与接口:抽象与实现的艺术