全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年兰陵县医疗事业单位人员招聘考试参考题库及答案解析
- 2026年陵川县带编教师招聘考试参考题库及答案解析
- 2026年营山县医疗事业单位人员招聘笔试模拟试题及答案解析
- 2026年烟台南山学院综合评价招生素质测试(笔试)模拟试题及答案(三)
- 2026年三江侗族自治县社区工作者招聘考试备考试题及答案解析
- 2026年德化县医疗事业单位人员招聘考试参考题库及答案解析
- 2026年沽源县带编教师招聘考试备考题库及答案解析
- 2026年白朗县医疗事业单位人员招聘考试备考试题及答案解析
- 2026年贵南县医疗事业单位人员招聘笔试备考试题及答案解析
- 2026年佳县医疗事业单位人员招聘笔试备考题库及答案解析
- 气瓶检测单位应急演练方案
- 保教人员档案管理制度
- 《课程与教学论(第2版)》全套教学课件
- 2025至2030卷烟机行业发展趋势分析与未来投资战略咨询研究报告
- T-SXCAS 015-2023 全固废低碳胶凝材料应用技术标准
- 老年患者综合评估视听障碍
- 十年(2016-2025)高考数学真题分类汇编27直线与圆填选题综合(四大考点69题)(解析版)
- 精神病风险评估
- ISO 9001(DIS)-2026《质量管理体系-要求》之35:“9绩效评价-9.1监视、测量、分析和评价-9.1.1总则”专业深度解读和应用指导材料(雷泽佳编写2025A0)
- 砌筑抹灰升降平台专项施工方案
- 小区内监控整改方案(3篇)
评论
0/150
提交评论