全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
java中的接口接口是一种程序结构,是特殊的抽象类。接口中的方法都是公开的抽象方法(public abstract),接口中的属性都是公开静态常量(public static final)。声明一个接口用 interface 关键字,接口是一种类型,编译之后生成相应字节码,他的声明规范也要符合类型的定义(一个源文件中只能有一个public interface,接口名和源文件名相同,有public interface,就不能写public class了)。接口中的属性可以不加修饰符,方法也不用加修饰符。接口可以继承,只能由接口继承,用类去实现(继承)时要换用 implements 关键字,类和接口的关系不叫做继承关系,叫做实现关系,其实质也是继承。一个类只能继承另外一个类,可以实现多个接口,其语法是在implements后面写接口名,多个接口以“,”分隔。接口可以多继承,其语法和类的继承语法相同,接口多继承时,在extends后写接口名,继承多个接口,接口名以“,”分隔,接口的继承关系是把其父接口中的抽象方法继承到子接口中。实现接口就必须实现接口中的所有方法,否则实现类必须是抽象类。一个类在继承一个类的同时也可以实现一个或多个接口。采用接口就绕开了单继承限制。接口类型可以做为编译时类型,其实际的运行时类型必须是完全实现接口的类的对象实例,这样就使多态变得很灵活了,例:public interface Aint test();interface B extends Avoid count();class Dclass C extends D implements A,B/C类既实现了A,B两个接口,也继承D类public int test()public void count()注意:实现接口时,实现(覆盖)抽象方法,注意必须在方法的返回值类型前加public修饰符,否则就无法覆盖。没有完全实现接口中的方法,那么这个类就只能是抽象类,不能创建对象。接口的是实质就是特殊的抽象类。接口没有构造方法。接口的意义:1) 接口和匿名内部类可以实现多继承。2) 用接口可以实现混合类型(主类型,副类型),java中通过接口可以分出主次类型。主类型使用继承,副类型,使用接口实现。3) 接口进一步深化了标准的思想,接口本身就是一个标准,起到了降低耦合性的作用。接口使方法的定义和实现相分离,将接口的定义者和实现者相分离。接口可以用于降低模块间或系统间的耦合性。针对接口编程可以屏蔽不同实现间的差异,看到的只是实现好的功能,接口:定义标准,接口的实现:实现标准接口的调用者:标准的使用针对接口编程原则,也就是按照标准实现。先有接口的定义,再有接口使用者,最后把接口的实现类对象作参数传入接口的使用者中相应的方法中,接口的使用者会通过接口来调用接口实现者的方法。接口的回调接口的定义者定义好标准,接口的使用者事先写好使用代码。接口的实现者写好实现后把实现类对象传入接口的使用者中,调用接口中方法也就是调用接口实现类中的方法。这种过程叫做接口的回调。尽量使用接口类型作为编译时类型,尽量将抽取到的共性行为写在接口中。接口隔离原则,用若干个小接口取代一个大接口。把一个类的功能作成接口,暴露想暴露的方法,接口隔离原则可以实现更高层次的封装,针对的对象不同,暴露的方法也不同。java中的根类Objectjava中所有的类的父类,或直接或间接的或隐含的都是Object类。java不允许循环继承,互相继承是不可以的。Object类中的finalize()方法是在一个对象被垃圾收集的时候调用的,会由JVM调用这个对象的finalize()方法Object类的String toString()方法,返回该对象的字符串表示。未覆盖时,toString()方法返回的是类名加上对象实例地址的一个字符串。在子类中推荐覆盖toString()方法。Object类中的boolean equals(Object o)方法是用来比较对象的内容是否相等,其返回值是boolean类型的值,相同为真,不同则为假。未覆盖的equals方法 实际上比较的还是对象地址。String类覆盖了equals()方法,比较的是对象中的内容是否相同。子类中也推荐覆盖Object类中继承的equals()方法。equals()的覆盖原则,自反性 x.equals(x) 为true对称性 y.equals(x) 和 x.equals(y) 的值要相同,要么都为true,要么都为false。传递性 x.equals(y)为true, y.equals(z)也为true ,那么x.equals(z)一定也为true。覆盖equals()方法的步骤boolean equals(Object o) if(this=o) return true;/1,判断是不是同一个对象 if(o=null) return true;/2,判断本对象是不是空 if(!(o instanceof 本类类名) return false;/判断是不是本类对象./根据本类设计。 例:public class Studentprivate int id;private String name;private String address;public String getAddress() return address;public void setAddress(String address) this.address = address;public int getId() return id;public void setId(int id) this.id = id;public String getName() return name;public void setName(String name) = name;public boolean equals(Object o) if(this=o) /1,判断是不是同一个对象return true;else if(o=null) /2,判断对象是不是空return true;elseif(!(o instanceof Student ) /判断是不是本类对象return false;elseStudent s=(Student)o;/强转成本类对象 if(.equals(s.getName()&this.id=s.getId()&this.address.eq
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年及未来5年中国全屋家具定制行业市场调研分析及投资前景预测报告
- 城市照明色彩与管理创新创业项目商业计划书
- 2025-2030中国液体化工物流保险产品设计与风险分摊机制研究
- 七年级语文下册第六单元黔之驴教案(2025-2026学年)
- 2025-2030中国液体化工物流企业上市路径与资本战略研究报告
- 私募基金绩效评估指标体系解析
- 办公用品采购报价模板
- 幼儿园暑期安全管理方案制定
- 小学科学教学实验操作手册
- 中学班级学生量化管理考核细则及实施方案
- 2025年高一语文期中模拟试卷(含答案)
- 2025四川省亭子口灌区建设开发有限公司招聘人才15人笔试历年参考题库附带答案详解
- 2025广东广州市海珠区凤阳街道第四批招聘雇员5人考试笔试模拟试题及答案解析
- 2025内蒙古巴彦淖尔市磴口县第三批社区工作者招聘60人笔试考试参考试题及答案解析
- 2025至2030中国电站建设行业市场深度调研及投资策略及有效策略与实施路径评估报告
- 民营经济发展历程回顾
- 2025年零售药店员工培训计划试题及答案
- 江西省公务员2025年考试行测模拟试卷及解析(含答案)
- 2026年广西现代职业技术学院单招职业技能考试必刷测试卷及答案1套
- 口腔门诊聘用合同范本
- 2024年中信银行信用卡中心社会招聘笔试模拟试题附答案详解(典型题)
评论
0/150
提交评论