《Java面向对象》课件-4.2 抽象类和接口_第1页
《Java面向对象》课件-4.2 抽象类和接口_第2页
《Java面向对象》课件-4.2 抽象类和接口_第3页
《Java面向对象》课件-4.2 抽象类和接口_第4页
《Java面向对象》课件-4.2 抽象类和接口_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模块四面向对象-高阶特性目录/Contents0102继承抽象类和接口0304多态内部类05异常06面向对象项目实践抽象类和接口任务二抽象类和接口

在Java编程中,经常需要描述一些抽象的概念,比如形状、车辆等,它们有共同的特征和行为,但又有不同的具体实现方式。为了更好地描述和拓展这些抽象概念,在Java中提供了两种机制:抽象类和接口。抽象类和接口都允许定义抽象方法,具体实现则由不同的子类或实现类来提供,使得程序可以定义通用的行为规范,实现代码的灵活性和重用性。学习目标掌握抽象类的使用,能够定义和使用抽象类

先定一个小目标!掌握接口的使用,能够定义和使用接口掌握抽象类和接口的比较,能够简述抽象类和接口的相同点与不同点4.2.1抽象类关键字abstract用于表示抽象,可以修饰方法和类,分别表示抽象方法和抽象类。抽象方法:只包含一个方法名,没有方法体的方法。使用关键字abstract定义抽象方法的语法格式。访问修饰符abstract返回值类型方法名(参数列表);4.2.1抽象类抽象类:包含了抽象方法的类就是抽象类。必须使用关键字abstract修饰。抽象类的语法格式如下。abstractclass抽象类名称{

属性;

访问修饰符返回值类型方法名称(参数){//普通方法return[返回值];}

访问修饰符abstract返回值类型抽象方法名称(参数);//抽象方法,无方法体}4.2.1抽象类与非抽象类相比,抽象类的特别之处。抽象类中不一定包含抽象方法,但包含抽象方法的类一定是抽象类。抽象类中可以包含零个至多个普通方法。抽象类不能直接创建对象,如果创建,则编译器会报错。继承抽象类的子类必须重写父类中所有的抽象方法,否则该子类也必须声明为抽象类。抽象类不能以final关键字和private关键字修饰,因为抽象类存在的意义就是为了被子类继承。抽象类中可以包含构造方法,但它不能被显示地手动调用。当抽象类的子类实例化时,会自动调用父类的构造方法。4.2.1抽象类下面通过一个案例演示抽象类的使用。案例演示Example09.java源代码4.2.1抽象类案例的运行结果如下图所示。案例演示4.2.2接口接口可以被看作一种特殊的抽象类。在JDK的发展过程中,接口的特性也不断更新和优化。下面对接口的更新情况和接口特性进行说明。4.2.2接口在接口中,不支持私有变量,变量会被隐式的指定为publicstaticfinal,也就是常量。4.2.2接口JDK8开始JDK8之前接口可以被看作一个彻底的抽象类,接口中的方法全部为抽象方法。接口中定义的方法可以有方法体,但是需要被关键字static或default修饰。JDK9之前接口中的方法默认为隐式抽象,即修饰符被隐式地指定为publicabstract,使用其他访问修饰符会报错。JDK9开始接口中引入了私有方法,允许使用private修饰符来声明,通常用于在接口的默认方法或静态方法中复用代码。4.2.2接口接口:使用关键字interface修饰。定义接口的语法格式。[public]interface接口名[extends接口1,接口2……]{ [public][static][final]数据类型常量名=常量; [public][abstract]返回值的数据类型方法名([参数列表]); [public|private]static返回值的数据类型方法名([参数列表]){方法体} [public]default返回值的数据类型方法名([参数列表]){方法体} private[static]返回值的数据类型方法名([参数列表]){方法体}}接口的存在是为了被实现,而不是被继承,因此接口与类的关系为实现关系。4.2.2接口修饰符

class类名implements接口1,接口2,...{

……}接口本身不能进行实例化,接口中的抽象方法、默认方法和私有方法只能通过其实现类的对象进行调用。Java提供了关键字implements用于实现接口。类实现接口的语法格式如下:一个类可以同时实现多个接口,使用英文逗号分隔。实现类必须实现接口所有的抽象方法。4.2.2接口下面通过一个描述月度工作流程的案例演示接口的使用。案例演示Example10.java源代码4.2.2接口案例的运行结果如下图所示。案例演示4.2.2接口前面已经提到,一个类可以实现多个接口。下面通过一个音乐播放器的案例演示这种情况。案例演示Example11.java源代码4.2.2接口案例的运行结果如下图所示。案例演示4.2.2接口当一个类既需要实现接口,又需要继承另一个类时,语法格式如下。class类名extends父类名implents接口{}4.2.2接口下面修改文件Example11.java,演示一个类既实现接口又继承父类的情况。案例演示Example12.java源代码4.2.2接口案例的运行结果如下图所示。案例演示4.2.2接口使用接口的注意事项。一个接口可以通过extends关键字继承另一个接口,这样的接口称为子接口,它会继承父接口的方法声明。当一个类实现两个接口,且两个接口中存在相同的抽象方法时,类中只需要重写一次这个方法即可,既表示重写接口1的,也表示重写接口2的。4.2.3抽象类和接口的比较比较内容抽象类接口不同之处关键字abstractinterface属性无限制变量必须为publicstaticfinal抽象方法可以定义抽象方法,也可以定义普通方法可以定义抽象方法,也可以定义普通方法,但普通方法有限制,例如需要使用关键字static或default修饰构造方法可以有构造方法不能有构造方法类的关系类只能继承一个抽象类类可以实现多个接口继承/实现只能被类或抽象类继承既可以被接口继承,也能被类或抽象类实现多重继承不支持可以继承多个父接口相同之处(1)JDK9以后,都可以包含具体的方法实现(2)都不能实例化对象,需要子类或实现类实例化对象【案例4-2】打印不同图形本案例要求编写一个程序,根据用户的输入在控制台打印出不同的图形。要求用户输入要打印的图形,以及图形的尺寸,控制台使用“*”打印相应图案。要求提供三种图形,正方形、圆形和等边三角形。正方形需要提供边长、圆形需要提供半径、等边三角形需要提供高。案例描述【案例4-2】打印不同图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论