java中接口的使用?

drugon 2004-09-10 04:40:56
在java中我们知道接口可以让我们避免类不能多继承的尴尬,但是如果我们继承一个接口,那么我们就要实现其它所有的方法。而在实际当中,我们经常用到java系统中的接口,我们不是继承,只是使用,可是一般上讲,接口是没有方法体的,要我们自己去实现方法体。问题出来了,在java系统中的包java.sql这个包中有很多的接口,如
Array
Blob
CallableStatement
Clob
Connection
DatabaseMetaData
Driver
ParameterMetaData
PreparedStatement
Ref
ResultSet
ResultSetMetaData
Savepoint
SQLData
SQLInput
SQLOutput
Statement
Struct
其中有我们常用的Statement PreparedStatement ResultSet,可是这些接口我们没有实现它其中的各个方法,但我们调用它们的各个方法又不会出任何问题。是不是java系统己经实现了这些接口中的各个方法?但是我们又为什么看不到那些实现的类文件呢?如果java系统自己没有实现这些接口中的方法,那我们调用它时又为什么不会抛出异常呢?接口和它方法实现的文件之间的关系统是不是象C++中的类的头文件和类实现文件之间的关系是一样的?
...全文
682 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
drugon 2004-09-13
  • 打赏
  • 举报
回复
谢谢大家的意见,我把那些驱动程序的jar文件解开看过,就象大家说的一样,其它由各个数据库厂商自己实现了各个接口方法。
redlaputa 2004-09-11
  • 打赏
  • 举报
回复
takecare说得对
weicairong 2004-09-11
  • 打赏
  • 举报
回复
好问题!
alaal 2004-09-11
  • 打赏
  • 举报
回复
weimenren(宁静以致远,淡泊以明志) 用List的例子十分恰当

ArrayList等都是继承了List接口并实现了List中的方法,我觉得这一点在《java2参考大全》中类库的每一章都可以得到体现
1981cxy 2004-09-11
  • 打赏
  • 举报
回复
学习.
看看.
alpha15 2004-09-11
  • 打赏
  • 举报
回复
某些接口中的方法在在某些类中是已经实现了的
newste 2004-09-11
  • 打赏
  • 举报
回复
我是小白来学习的
song3721 2004-09-11
  • 打赏
  • 举报
回复
up
wangdaobang 2004-09-11
  • 打赏
  • 举报
回复
接口只是定义了方法,假如我们以为调用的方法没有被实现的话,我认为是不对的,实现总是有一个或者几个类来实现这个接口,可以被一个类实现,也可以被几个类逐步实现,而且我们可以调用instance.getclass来得知是什么类将这个接口实现的(可能该类是从父类或者更古老的祖先类继承来的)。
weimenren 2004-09-11
  • 打赏
  • 举报
回复

这个不是那些接口实现了方法,接口只是定义方法名,方法参数以及方法返回值,我们使用Statement的时间,你会发现 你使用的 is a Statement,但这个Statement是通过其他的方法创建的,你总不能Statement stmt = new Statement()吧,通过其他方法构造Statement的时间,其实创建的是Statement的子类(子类 is a 父类),所以没有出错

就如 List list = new ArrayList(); 一样,你看见是 List接口,但它调用方法的时间其实调用的是 ArrayList()的方法

因为你很快就可以使用 list.add(Object o) 了, List 接口中定义 add方法,而在 ArrayList中实现
baffling 2004-09-10
  • 打赏
  • 举报
回复
是啊,各厂商提供的jdbc驱动里面应该已经实现了这些方法
treeroot 2004-09-10
  • 打赏
  • 举报
回复
驱动程序不就是实现吗??
你可以打印出来看看事那个类
System.out.println(conn.getClass());
System.out.println(rs.getClass());
.....
sulo_xxr 2004-09-10
  • 打赏
  • 举报
回复
方法其實在其子類中已經實現﹐你所用到的接口會去自動執其了類的方法
執行期型別的識別(向上轉型)
hongshi 2004-09-10
  • 打赏
  • 举报
回复
是啊,还没有 想过这个问题
takecare 2004-09-10
  • 打赏
  • 举报
回复
sun只是制订了JDBC的标准,而数据库厂商会去针对自己的数据库分别实现不同类型的jdbc driver。当使用这些接口前,一般都会Class.forName(driver)来装入Driver,接下来的事情就能预见到了,driver被实例化后或者驻入JVM后,就能够提供实现了。
chan2chen 2004-09-10
  • 打赏
  • 举报
回复
不知道他们是怎么设计这样的?
jiffandu 2004-09-10
  • 打赏
  • 举报
回复
上面说的好像是对的吧,讲不清楚
kobetong 2004-09-10
  • 打赏
  • 举报
回复
同样期待!
alaal 2004-09-10
  • 打赏
  • 举报
回复
调用这些方法的类实际上是继承了拥有该方法的接口,同时实现了这些方法

所以可以正常使用
drugon 2004-09-10
  • 打赏
  • 举报
回复
希望大家多多发表意见,星期一上班后就看情况结帖!
已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 MySQL 5.7 数据库的部署及设置MySQL 是一种广受欢迎的开源关系型数据库系统,其应用遍及众多应用程序和系统平台。本文将全面阐释 MySQL 5.7 数据库的安装流程及其配置细节。一、实验目标旨在深入理解数据库的安装方法;熟练掌握运用 MySQL 构建基础表格以及执行数据相关操作;精通数据库的安装过程和实际应用。二、实验流程### MySQL 的安装与配置1. 将 MySQL-5.7.20-winx64 压缩包解压至预定目录,以 D 盘根目录为例进行部署。2. 以管理员权限进入 MySQL 的 bin 目录,通过执行 `mysqld --install mysql` 命令来注册 MySQL 服务。3. 对 MySQL 的 data 目录进行初始化操作:使用 `mysqld --initialize-insecure` 命令,该指令会生成一个初始无密码的 root 用户,便于后续数据库访问。4. 启动 MySQL 服务:采用管理员身份运行 `net start mysql` 命令,以此激活 MySQL 服务。5. 服务成功运行后,需对 root 用户密码进行修改:通过命令 `mysql -uroot -p` 登录 MySQL 数据库,随后执行 `set password for root@localhost = password(设定密码);` 来设定新密码。### 数据库与表的构建1. 数据库的创建:执行 `create database test;` 命令建立数据库,并使用 `use test;` 命令选择当前数据库。2. 表的创建,其结构如下所示:| 别名 | 数...
内容概要:本研究提出了一种基于主成分分析(PCA)的边缘保留特征(EPFs)方法(PCA-EPFs),旨在提升高光谱图像分类的精度与效率。该方法首先利用PCA对高光谱数据进行降维处理,有效减少数据冗余并保留主要光谱信息,随后引入边缘保留特征提取策略,强化图像关键的地物边界信息,从而在降低计算复杂度的同时显著提升分类性能。文详细阐述了PCA-EPFs的算法流程,并通过在标准高光谱数据集上的实验验证,证明了该方法在分类准确率和边缘细节保留方面相较于传统方法的优越性,尤其适用于遥感图像分析、环境监测等领域。; 适合人群:具备遥感图像处理、模式识别或机器学习基础知识的科研人员、研究生以及从事高光谱图像分析的工程技术人员。; 使用场景及目标:① 在高光谱遥感图像分类任务,解决因数据维度高导致的“维度灾难”问题;② 在保证分类精度的前提下,有效提取并保留地物边缘特征,提升分类结果的视觉可读性和实用性;③ 为后续的精细化地物识别与变化检测提供高质量的分类图基础。; 阅读建议:在阅读过程,应重点关注PCA降维与边缘特征提取的融合机制,建议结合Matlab代码实现,复现实验结果,并尝试在不同数据集上调整参数以深入理解算法性能。
内容概要:本研究聚焦于热电联产系统的经济调度问题,提出并实现了结合粒子群优化算法(PSO)与二进制遗传算法(BGA)的混合优化方法,旨在提升系统运行的经济性与能源利用效率。该方法在Matlab平台上进行代码实现,针对热电联产过程存在的多目标、非线性及强耦合特性,通过粒子群算法的快速收敛能力和遗传算法的全局搜索优势相结合,有效求解机组出力分配与启停计划的联合优化问题。文详细阐述了两种算法的融合机制、适应度函数的设计、约束条件的处理方式,并通过标准测试系统或实际案例进行仿真验证,展示了所提方法在降低系统总运行成本、提高优化精度方面的有效性与优越性。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的科研人员、高校研究生以及从事能源系统优化调度工作的工程技术人员。; 使用场景及目标:① 研究热电联产、综合能源系统等多能互补系统的经济调度模型与求解算法;② 学习和掌握粒子群算法与遗传算法的基本原理及其在混合整数非线性规划问题的融合应用技巧;③ 为实际的能源管理系统开发提供高效的优化算法原型与仿真验证工具。; 阅读建议:此资源以Matlab代码实现为核心,不仅提供了完整的算法实现流程,还包含了详细的算例分析。学习者应重点研读算法设计思路与代码实现细节,动手运行和调试程序,通过改变系统参数和约束条件来观察优化结果的变化,从而深刻理解混合优化算法的工作机理和应用潜力。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧