系统认知Java接口、接口与继承、接口与多态

简介: 在面向对象的基础之上,接口的出现是类性质的一种完善,是继承机制的一种补充,是体现多态性的一种形式。从生活实际出发,接口把它之下一系列复杂的逻辑,功能等通过“实现接口”的方式封装简化出来,只通过连接一个小小的口子就轻而易举地实现了背后实则很复杂的功能。我想这就是接口存在的意义所在吧。

前言

在面向对象的基础之上,接口的出现是类性质的一种完善,是继承机制的一种补充,是体现多态性的一种形式。从生活实际出发,接口把它之下一系列复杂的逻辑,功能等通过“实现接口”的方式封装简化出来,只通过连接一个小小的口子就轻而易举地实现了背后实则很复杂的功能。我想这就是接口存在的意义所在吧。

在这里插入图片描述

接口⭐

一.定义及语法

1.定义

一系列方法的声明使用,是一些方法的集合
给出一些没有实现的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来

2.语法:

interface 自定义的接口名字{
        属性
        方法
}
class 类名 implements 接口{
       类自己的属性
       类自己的方法
}
AI 代码解读

3.注意事项:

1.接口中的方法可以是抽象,静态,默认实现的方法
2.接口中的抽象方法必须在类中实现
3.JDK7前接口里的所有方法是没有方法体的,都是抽象方法
4.JDK8后接口可以有静态方法,默认方法

二.使用细节

🟢接口不能被实例化
例如:
在这里插入图片描述
🟢接口中所有方法为public方法,抽象方法可以不用abstract来修饰
例如:
在这里插入图片描述
🟢一个普通类实现接口,就必须将该接口中的所有方法都实现
例如:
在这里插入图片描述

🟢抽象类实现接口,可以不用实现接口的方法
例如:
在这里插入图片描述

🟢一个类同时可以实现多个接口
例如:
在这里插入图片描述
🟢接口中的属性只能是 public,final,static修饰
例如:

int a=10  等价于 public static final int a=10;
AI 代码解读

🟢访问接口中属性的方式为——接口名.属性名
例如:

public class Test {
    public static void main(String[] args) {
        System.out.println(Jiekou.a);  //访问接口属性的方式
    }
}
interface Jiekou{
    int a=10;
    void Method();
    void Method2();
}
AI 代码解读

🟢接口不能继承其他的类,但是可以继承多个别的接口
例如:
在这里插入图片描述
🟢接口修饰符只能是public和默认修饰符

三.实现接口与继承

🟢接口和继承解决的问题不同

✔️继承提高代码复用性和可维护性
✔️接口通过设计好各种规范来让其它类去实现这些方法

🟢接口是对Java单继承机制的一种补充,父类中没有的功能有时也可以通过实现接口来解决
例如:

public class Monkey {
    public static void main(String[] args) {
        Monkeyking monkeyking = new Monkeyking("悟空");
        monkeyking.jump();
        monkeyking.fly();  //通过实现接口,从而补充了功能
    }
    public  String name;
    public Monkey(String name) {
        this.name = name;
    }
    public void jump(){
        System.out.println("我会跳了~");
    }
}
interface Skill{      //接口类似于继承的一种补充机制 父类中没有的功能有时也可以通过实现接口来解决
    void fly();
    void swim();
}
class Monkeyking extends Monkey implements Skill{
    public Monkeyking(String name, int age) {
        super(name, age);
    }
    @Override
    public void jump() {
        super.jump();
    }
    @Override
    public void fly() {
        System.out.println("我又会飞了~");
    }
    @Override
    public void swim() {
        System.out.println("我又会游泳了~");
    }
}
AI 代码解读

🟢继承满足的是is-a的关系,接口满足的是like-a的关系(实质上还是补充机制)

四.接口多态性体现

🟢多态参数
可以在形参列表中传入接口类型的不同参数用来接收不同的对象
例如:
A为一个接口

public static void play(A a){...}
AI 代码解读

🟢多态数组
通过一个情景引入
例如:
有MP3和Computer两台设备,给一个接口Usb,分别实现接口,并将对象存入数组并遍历,要求在使用Computer时可以在实现work()方法的同时,实现特有的game()方法。利用多态数组实现。

public class PolyArr {
    public static void main(String[] args) {
        Usb[] usb=new Usb[2];                  //多态数组
        usb[0]=new Computer();
        usb[1]=new MP3();
        for (int i = 0; i < usb.length; i++) {
            usb[i].work();                    //体现动态绑定机制
            if (usb[i] instanceof Computer){  //类型判断
                ((Computer) usb[i]).game();   //向下转型
            }
        }
    }
}
interface Usb{
void work();
}
class Comptuer implements Usb{
    @Override
    public void work() {
        System.out.println("电脑在使用~");
    }
    public void game() {   //手机特有的功能
        System.out.println("电脑在玩游戏!");
    }
}
class MP3 implements Usb{
    @Override
    public void work() {
        System.out.println("MP3在工作!");
    }
}
AI 代码解读

🟢接口存在多态传递

public class Pass {
    public static void main(String[] args) {
        IE ie=new Teacher();   //接口类型的变量可以指向,实现了该接口的类的对象实例    
        IG ig=new Teacher();  //这就是接口的多态传递现象
    }
}
interface IG{}
interface IE extends IG{}
class Teacher implements IE{}
AI 代码解读
如果IE 继承了IG 接口,而Teacher 类实现了IE接口 那么,实际上就相当于Teacher类也实现了IG接口
目录
打赏
0
0
0
0
4
分享
相关文章
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
209 96
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
JAVA接入DeepSeek大模型接口开发---阿里云的百炼模型
随着大模型的越来越盛行,现在很多企业开始接入大模型的接口,今天我从java开发角度来写一个demo的示例,用于接入DeepSeek大模型,国内的大模型有很多的接入渠道,今天主要介绍下阿里云的百炼模型,因为这个模型是免费的,只要注册一个账户,就会免费送百万的token进行学习,今天就从一个简单的可以执行的示例开始进行介绍,希望可以分享给各位正在学习的同学们。
133 3
JAVA接入DeepSeek大模型接口开发---阿里云的百炼模型
2K star!三分钟搭建企业级后台系统,这款开源Java框架绝了!
"LikeAdmin Java是基于Spring Boot + Mybatis Plus + Vue 3的快速开发平台,内置RBAC权限管理、工作流引擎、数据可视化、三方登录等核心模块,助力开发者快速构建企业级中后台管理系统"
90 17
[Java计算机毕设]基于ssm的OA办公管理系统的设计与实现,附源码+数据库+论文+开题,包安装调试
OA办公管理系统是一款基于Java和SSM框架开发的B/S架构应用,适用于Windows系统。项目包含管理员、项目管理人员和普通用户三种角色,分别负责系统管理、请假审批、图书借阅等日常办公事务。系统使用Vue、HTML、JavaScript、CSS和LayUI构建前端,后端采用SSM框架,数据库为MySQL,共24张表。提供完整演示视频和详细文档截图,支持远程安装调试,确保顺利运行。
65 17
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
108 11
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
构建高效Java后端与前端交互的定时任务调度系统
通过以上步骤,我们构建了一个高效的Java后端与前端交互的定时任务调度系统。该系统使用Spring Boot作为后端框架,Quartz作为任务调度器,并通过前端界面实现用户交互。此系统可以应用于各种需要定时任务调度的业务场景,如数据同步、报告生成和系统监控等。
57 9
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
251 5
|
3月前
|
Java 面向对象编程的三大法宝:封装、继承与多态
本文介绍了Java面向对象编程中的三大核心概念:封装、继承和多态。
194 15
Java中的继承和多态:理解面向对象编程的核心概念
【8月更文挑战第22天】在Java的世界中,继承和多态不仅仅是编程技巧,它们是构建可维护、可扩展软件架构的基石。通过本文,我们将深入探讨这两个概念,并揭示它们如何共同作用于面向对象编程(OOP)的实践之中。你将了解继承如何简化代码重用,以及多态如何为程序提供灵活性和扩展性。让我们启程,探索Java语言中这些强大特性的秘密。
Java——类与对象(继承和多态)
本文介绍了面向对象编程中的继承概念,包括如何避免重复代码、构造方法的调用规则、成员变量的访问以及权限修饰符的使用。文中详细解释了继承与组合的区别,并探讨了多态的概念,包括向上转型、向下转型和方法的重写。此外,还讨论了静态绑定和动态绑定的区别,以及多态带来的优势和弊端。
140 7
Java——类与对象(继承和多态)
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等