首页 > 编程语言 >模块3 面向对象编程高级 --- 第九章:实现接口

模块3 面向对象编程高级 --- 第九章:实现接口

时间:2024-07-25 16:09:04浏览次数:17  
标签:定义 第九章 修饰符 接口 --- 实现 面向对象编程 方法 public

第九章 实现接口

主要知识点

  1、接口的定义

  2、接口的声明

  3、接口的实现

  4、接口的应用

学习目标

  掌握接口的定义、声明、实现以及使用方法。

  接口是一种特殊的类,允许包括变量、常量等一个类所包含的基本内容,可以包含方法。接口中的方法只能有声明,不允许设定代码。可以理解为接口是专门被继承的,接口的意义就是被继承,不能被实例化。

9.1 定义接口

  1、接口的定义

  在软件工程中,有一份契约规定了来着不同开发小组的软件之间如何相互作用,并且在不知道其他小组代码的前提下独立开发自己的代码。Java中的interface就是这样的一份契约,它规定了一组执行规范。

  2、声明接口

  通过关键字interface定义接口,其格式为:

[修饰符] interface 接口名[extends 父接口名列表]{
    [public][static][final] 数据类型 属性名 = 常量值;
    [public][abstract] 返回类型 方法名(参数列表);
}

  说明:

  (1)一个接口可以有一个以上的父接口。

  (2)用public修饰的接口可以被所有的类和接口使用,没有用public修饰的接口只能被同一个包中的其他类和接口使用。

  (3)接口中的所有属性都是public static final,不管是否显式定义; 

  (4)接口中的所有方法都是public abstract ,不管是否显式定义; 

9.2 接口的实现方法

  1、实现一个接口

  由某个类为接口中的抽象方法书写语句并定义实在的方法体。语法格式如下:

[修饰符] class 类名 implements 接口名

  说明:

  (1)如果实现某个接口的类不是抽象类,则该类需要为接口中的所有抽象方法定义方法体,如果是抽象类,则可以不必实现该接口中的所有抽象方法。

  (2)一个类在实现某接口的抽象方法时,必须使用完全相同的方法体。

  2、实现多个接口

  一个类可以实现多个接口,这意味着该类实现了多个:契约 :所规定 的功能,其语法格式如下:

[修饰符] class 类名 implements 接口1,接口2,......

  3、使用接口

  如果定义了一个类型为接口的引用变量,则该变量所指向对象的所在类必须实现了该接口。

习题

一、简答题

  1、什么是接口?接口与类有什么不同?

  2、接口的修饰符包括哪些?

  3、接口与抽象类有什么不同?

  4、如何实现多个接口?

二、操作题

  1、定义一个银行卡的接口BankCard,成员属性根据实际情况自行确定,在类中定义两个方法save和withdraw,分别表示存款和取款。

  2、根据上一题设计的接口,分别实现从银行取款1000元和存款5000元对应的抽象方法,要求输出账号余额和存(取)款的数量。

标签:定义,第九章,修饰符,接口,---,实现,面向对象编程,方法,public
From: https://www.cnblogs.com/kuangmeng/p/18322570

相关文章

  • DFS和DP--过河卒
    题目描述:棋盘上 A 点有一个过河卒,需要走到目标 ......
  • Qt/C++使用小记7【qt单例模式-写日志/保存运行记录】
    小收获7众所周知,有时候需要记录行为操作,或者记录数据进行对比,甚至有的时候需要记录软件内的数据,来确认错误的地方或者验证数据的准确性,那么该如何进行呢这里我所使用的是使用“单例模式”来进行记录的,所以这个收获说是记录写日志,不如说是记录单例模式的使用~什么是单例模式?......
  • (三)复习第三课(07.20- 07.25第二轮):HTML标签元素练习大全
    <!DOCTYPEhtml><!--练习时间:2024.07.20-2024.07.25--><htmllang="en"><!--添加了en可以让你的网站打开时会提示翻译--><head> <pid="head1"></p><metacharset="utf-8"><!--对于中文网页需要使用此标签声明编码,否则会出现......
  • Vue2 e-table 合并第一列单元格
    需求:名字一样的合并单元格前端思路:方法一//处理表格数据,将同一名称的数据进行组合//tableData是请求后端返回的List<对象>handleData(tableData){debuggerconstkeys=[]//唯一值的数组tableData.forEach((item,index)=>{if(!k......
  • 20240722-0725 数据库外键报错
    数据库关联查询:​ 有一个村庄表,每个村庄属于一个村庄管理员,存着村庄管理员的id,村庄管理员在user_user和sys_user里存着。​ 查询村庄表,是超级管理员能看到所有村庄,村庄管理员只能看到自己的村庄。selectv.id,v.name,v.owner_id,v.created_at,v.updated_atfromlocation......
  • Linux入门---(三)Shell编程
    1.脚本格式:#!/bin/bash开头2.脚本执行方式采用bash或sh+脚本的相对路径或绝对路径采用输入脚本的绝对路径或相对路径执行脚本,如./hello.sh在脚本的路径前加上“.”或source(父shell)3.变量系统预定义变量:$HOME,$PWD,$SHELL,$USER等自定义变量:变量名=变量值,如my_var=hello......
  • 元宇宙在教育中的好处-元宇宙教育解决方案
    一、什么是元宇宙?什么是元宇宙?元宇宙是一个利用科技手段构建的,与现实世界相映射和相交互的虚拟世界,具备新型社会体系的数字生活空间。元宇宙涉及多种技术,如虚拟现实、增强现实、人工智能、区块链等,可以让用户在不同的平台和设备上体验不同的虚拟场景和活动。元宇宙的概念和应用在......
  • 基于JSP、java、Tomcat三者的项目实战--校园交易网(1)-项目搭建(前期准备工作)
    这是项目的初始页面接下来我先写下我的初始项目搭建技术支持:JAVA、JSP服务器:TOMCAT7.0.86编程软件:IntelliJIDEA2021.1.3x64首先我们打开页面,准备搭建项目的初始准备1.NewProject2.随后点击Next,勾选Createprojectfromtemplate,再点击Next3.给自己的项目命名......
  • 牛可乐与魔法封印----(二分)
     题目描述牛可乐得到了一个长度为n且非严格单调递增的序列 a,然而这个序列被q层魔法封印了,其中第i 层封印的问题包含两个整数xi,yi(xi≤yi),牛可乐必须正确回答序列中大于等于xi且小于等于yi​的数字个数才能够解开该层封印。牛可乐觉得这个问题太难了,于是他想请......
  • CTFHUB-SQL注入-1
    对于sql注入类型的题,首先判断注入点尝试发现注入点为?id=1'发现联合注入无法回显,尝试使用sqlmap先进行扫描sqlmap-u"http://challenge-1559e706c24187fa.sandbox.ctfhub.com:10800/?id=1'" 查询dbssqlmap-u"http://challenge-1559e706c24187fa.sandbox.ctfhub.co......