- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java基础抽象类接口概要1
接口、抽象类、Map类 抽象类 抽象类是指在类中定义方法,但是并不去实现它,而在它的子类中去具体的实现。定义的抽象方法不过是一个方法占位符。继承抽象类的子类必须实现父类的抽象方法,除非子类也被定义成一个抽象类。 定义 修饰符 abstract 类名{ //类体 } 修饰符 abstract 返回值类型方法名(); 程序把Animal 定义为抽象类,里面的breath 方法被定义为抽象方法,而后面定义的Animal 的子类Tiger 和Fish 都实现了breath 方法。 抽象类的使用 定义完抽象类后,就可以使用它。但是抽象类和普通类不同,抽象类不可以实例化,如语句Animal animal =new Animal();是无法通过编译的,但是可以创建抽象类的对象变量,只是这个变量只能用来指向它的非抽象子类对象。示例如下。 程序中定义了两个Animal 对象变量,一个存放Fish 对象,另一个存放Tiger 对象,分别调用这两个对象的breath 方法。由于根本不可能构建出Animal 对象,所以存放的对象仍然是Tiger 对象,它会动态绑定正确的方法进行调用。 需要注意的是,尽管animal 存放的是Tiger 对象或是Fish 对象,但是不能直接调用这些子类的方法,语句animal.swim;和animal2.tigerRun();都是不正确的。调用这项方法的时候仍然需要进行类型转换,正确的使用方法如下。 接口 接口是 Java 提供的一项非常重要的结构。它定义了一系列的抽象方法和常量,形成一个属性集合。接口定义完成后任何类都可以实现接口,而且一个类可以实现多个接口。实现接口的类必须实现接口中定义的抽象方法,具体实现细节由类自己定义。可以说接口定义了类的框架,它实际上是一种完全的抽象类。 接口的定义 了解什么是接口后,现在就来定义接口。接口的定义跟类的定义十分相似,只是使用的关键字不同,类的定义使用的关键字是class,而接口使用的关键字是interface。接口定义的形式如下。 定义接口注意事项 接口的修饰符只能为默认的(无修饰符)或者public。当修饰符为默认时,接口是包可见的,在接口所在的包之外的类不能使用接口。 修饰符为public 时,任何类都可以使用该接口。 接口的名字应该符合Java 对标识符的规定。 接口内可以声明变量,接口内的变量被自动设置为共有的、静态的、最终的字段。 接口定义的方法都为抽象,它们被自动地设置为public。 接口也被保存为.java 文件,文件名与类名相同。 在接口中声明一个变量。 int i; 它的实际效果如下。 public static final i; 在接口定义时可以把它明确地定义为public static final,但是因为字段会被自动地设置为这些类型,所以不建议再写出。下面是一个完整的接口的定义。 接口的实现 接口的实现是指具体实现接口的类。接口的声明仅仅给出了抽象方法,相当于事先定义了程序的框架。实现接口的类必须要实现接口中定义的方法。实现接口的形式如下: 实现接口注意事项 由关键字表示实现的接口,多个接口之间用逗号隔开。实现接口需要注意以下几点。 如果实现接口的类不是抽象类,它必须实现接口中定义的所有的方法。如果该类为抽象类,在它的子类甚至子类的子类中要实现接口中定义的方法。 实现接口的方法时必须使用相同的方法名和参数列表。 实现接口类中的方法必须被声明为public,因为在接口中的方法都被定义为public,根据继承的原则,访问范围只能放大,不能缩小。 接口之间也可以有继承关系。继承接口的接口拥有它的父接口的方法,它还可以定义自己的方法,实现这个子接口的类。要实现所有这些方法,示例如下,使用上面的Animal 动物接口,然后定义一个子接口哺乳动物Mammal。 如果类要实现Mammal,它必须实现两个接口中的所有方法,下面是重新定义的类Tiger。 接口的应用 跟抽象类一样,接口也不可以实例化,但是可以声明接口类型的变量,它的值必须是实现了该接口的类的对象。例如: Animal tiger= new Tiger(); 通过tiger,只能调用Animal 中定义的方法eat、sleep、breath,如果使用语句Mammal tiger=new Tiger();,就可以调用在Mammal 接口中定义的run 方法了。 当然,通过强制类型转换可以调用所有的方法,示例程序如下,首先看两个接口的定义, 其中Mammal 接口继承了Animal 接口。 这个程序主要是展示通过接口来实现多态的一种方式。接口变量来存放接口实现类的对象,通过它来调用方法的时候,程序会调用“合适”的方法,过程跟继承中讲到的动态绑定很相似。 接口的另一个重要应用是用它来创建常量组,例如要用in
您可能关注的文档
- java1概要1.doc
- 地下管线发展状况概要1.pptx
- Java3D在虚拟现实中的应用_姚浩翔概要1.doc
- JAVA12概要1.ppt
- Java5新特性概要1.ppt
- java4(成员变量的初始化、包和控制修饰符)概要1.ppt
- JAVA8中新引入的日期类型概要1.pptx
- JAVA2实用教程第4讲概要1.ppt
- 水体旅游景观概要1.ppt
- 地下管道方案6.27概要1.doc
- 2025年天津市冷链物流基地配套道路建设可行性研究报告.docx
- 2025年天津市母婴护理会所专业化服务升级路径可行性研究报告.docx
- 2025年成都市私立医院医美抗衰中心创建可行性研究报告.docx
- 2025年成都市淡化海水在城市道路清洗领域的应用可行性研究报告.docx
- 2025年上海市环卫厨余垃圾生物处理技术应用可行性研究报告.docx
- 2025年天津市花西子针对户外运动妆容的可行性.docx
- 2025年上海市生物发电于秸秆炭化还田协同发电的可行性研究.docx
- 2025年天津市物造纸在可降解农用地膜领域的应用可行性研究报告.docx
- 2025年天津市无人值守充电站智能运维可行性研究报告.docx
- 2025年天津市竹荪种植连作障碍防治技术可行性研究报告.docx
文档评论(0)