项目6 6.4 抽象类与抽象方法_第1页
项目6 6.4 抽象类与抽象方法_第2页
项目6 6.4 抽象类与抽象方法_第3页
项目6 6.4 抽象类与抽象方法_第4页
项目6 6.4 抽象类与抽象方法_第5页
已阅读5页,还剩13页未读, 继续免费阅读

下载本文档

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

文档简介

Java程序设计语言概述6.4抽象类与抽象方法01抽象类01抽象类用关键字abstract修饰的类称为abstract类(抽象类)。abstract类(抽象类)是专门为实现继承而设计的类。例如:abstractclassX{…}用关键字abstract修饰的方法称为abstract方法(抽象方法)。例如:abstractintmax(intx,inty);01抽象类抽象类Java中的抽象类(abstractclass)是一种特殊的类结构,用于定义具有部分实现或完全未实现方法的类模板。抽象类本身无法通过new关键字直接实例化,其核心价值在于为继承体系中的子类提供基础功能与强制规范。当开发者定义抽象类时,实际上是在构建一个半成品的代码框架——既包含可复用的具体方法实现,又通过抽象方法强制要求子类补充关键逻辑。例如,在图形绘制系统中,抽象类Shape可以定义颜色属性、位置坐标等通用数据,同时声明计算面积的抽象方法,形成几何图形的统一标准:01抽象类abstractclassShape{Stringcolor;publicShape(Stringcolor){this.color=color;}StringgetColor(){//具体方法:获取颜色returncolor;}publicabstractdoublecalculateArea();//抽象方法:计算面积(子类必须实现)}01抽象类在行为约束层面,抽象类通过抽象方法形成“契约”,确保所有子类必须实现特定功能。‌代码复用‌与‌行为约束‌。在代码复用层面,抽象类通过具体方法封装通用逻辑,避免子类重复编写相同代码。abstract类(抽象类)的设计通常服务于两种场景02抽象方法02抽象方法abstract方法抽象方法是仅声明方法签名而不提供具体实现的方法,它充当着子类必须遵守的协议条款。抽象方法的声明以abstract关键字开头,且必须以分号结束,不能包含方法体。abstract方法抽象方法是仅声明方法签名而不提供具体实现的方法,它充当着子类必须遵守的协议条款。抽象方法的声明以abstract关键字开头,且必须以分号结束,不能包含方法体。02抽象方法以下是abstract类与abstract方法的一些特性:1.abstract类不能用new关键字创建对象。2.abstract类的对象可以做上转型对象。3.abstract类的子类必须重写父类-也就是abstract类中的abstract方法,并给出方法体;如果abstract类的子类也是abstract类,则子类可以直接继承作为父类的abstract类abstract方法,也可以重写父类的abstract方法。4.abstract类中可以没有abstract方法,但如果一个类有abstract方法则必然是abstract类。abstract类与abstract方法的例子如下:02抽象方法abstractclassCharacter{//游戏角色protectedStringname;publicCharacter(Stringname){=name;}

//抽象方法:攻击行为(无具体实现)publicabstractvoidattack();}classWarriorextendsCharacter{publicWarrior(Stringname){super(name);}

//子类必须实现抽象方法@Overridepublicvoidattack(){System.out.println(name+"使用剑进行近战攻击!");}}classMageextendsCharacter{publicMage(Stringname){super(name);}@Overridepublicvoidattack(){System.out.println(name+"释放火球术!");}}02抽象方法通俗理解:

抽象类‌就像游戏策划案里的‌角色模板‌:✅

写好了所有角色必须有的属性和基础行为(比如移动逻辑)

⚠️

但标红了“攻击方式待设计”的注释,逼着程序员必须实现

‌抽象方法‌是策划案里的‌强制要求‌:

如果你设计一个新英雄(子类)但忘记做攻击技能(不实现抽象方法),游戏引擎(编译器)会直接警告:“这个英雄没有攻击技能,不能加入游戏!”这种设计既保证了所有英雄有统一的基础功能(比如移动方式不用重复写代码),又让每个英雄可以自由发挥独特的战斗风格。03项目演练08项目演练项目名称:守艺人工坊系统‌‌场景设定:国家级非遗保护基地实施"守艺人非遗展演",本次展演口号“讲好中国非遗故事

深化文明交流互鉴!”,每场展演播出由多个非遗项目表演组成03项目演练classArtisan{//父类:非遗守艺人(基础模板)Stringname;//传承人名intyears;//传承年限voidslogan(){//非遗口号System.out.println("讲好中国非遗故事

深化文明交流互鉴!");}voidperformArt(){//表演技艺System.out.println(name+"展示基础技艺");}}classPaperCutArtistextendsArtisan{//子类1:剪纸传人Stringpattern;//特有属性:剪纸样式

PaperCutArtist(Stringname){="剪纸传人·"+name;//直接访问父类成员years=15;pattern="龙凤呈祥";}@OverridevoidperformArt(){System.out.println("✂"+name+"正在创作:");System.out.println("《"+pattern+"》剪纸作品(传承"+years+"年)");}classArtisan{//父类:非遗守艺人(基础模板)Stringname;//传承人名intyears;//传承年限voidslogan(){//非遗口号System.out.println("讲好中国非遗故事

深化文明交流互鉴!");}voidperformArt(){//表演技艺System.out.println(name+"展示基础技艺");}}classPaperCutArtistextendsArtisan{//子类1:剪纸传人Stringpattern;//特有属性:剪纸样式

PaperCutArtist(Stringname){="剪纸传人·"+name;//直接访问父类成员years=15;pattern="龙凤呈祥";}@OverridevoidperformArt(){System.out.println("✂"+name+"正在创作:");System.out.println("《"+pattern+"》剪纸作品(传承"+years+"年)");}03项目演练="醒狮队·"+name;years=30;}@OverridevoidperformArt(){System.out.println(""+name+"腾跃起舞:");System.out.println("高桩采青|梅花桩步法|三拜狮礼,(传承"+years+"年)");}voiddrumming(){//特有方法System.out.println("醒狮队·擂动传统七星鼓点");}}publicclassCulturalGuardian{publicstaticvoidmain(String[]args){Artisanartisan=newArtisan();//未初始化父类对象PaperCutArtistartisan1=newPaperCutArtist("李巧手");GuqinPlayerartisan2=newGuqinPlayer("王清音");LionDancerartisan3=newLionDancer("南粤雄风");System.out.println("====非遗文化展演节目单====");

artisan1.displayAtMuseum();

artisan2.playGuqin();artisan3.drumming();System.out.println("\n====非遗文化节目展演====");="非遗传承人";artisan.slogan();artisan.performArt();artisan=artisan1;//子类上转型artisan.slogan();artisan.performArt();artisan=artisan2;//子类上转型artisan.slogan();artisan.performArt();artisan=artisan3;//子类上转型

artisan.slogan();artisan.performArt(

温馨提示

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

最新文档

评论

0/150

提交评论