谁能跟我说几个JAVA多态,在现实生活中应用的例子,不要说代码和概念,就只说案例

谁能跟我说几个JAVA多态,在现实生活中应用的例子,不要说代码和概念,就只说案例,第1张

有一个比较经典的多态实例:

有一个Animal类,它有Cat,和Dog两个子类,在Animal中有个say方法,当Cat调用这个方法的时候输出的是“小猫喵喵喵”,当Dog调用这个方法时,输出的是“小狗汪汪汪”,这就是Java多态的实现。

1、定义一种动物,该类型的动物有叫的属性。

2、分别定义猫,狗,鸟,都继承于该动物,都有叫的属性。

3、分别表示出各个具体小动物的叫声,例如猫的叫声:喵、狗的叫声:汪、鸟的叫声:咻,点是叫声,实现各个具体小动物用的叫声的方法是用的同一个函数名称,就是动物的叫声函数。

多态:

这个案例网上是没有的,属于无忌独创,当时在帮孩子辅导作业,小学科学,里面有一点内容是关于人的牙齿,说牙齿分为:门齿、犬齿、臼齿。

问闺女,为什么这么分呢?闺女说牙齿虽然都是用来咬食物,但是食物种类很多,咬碎需要的工具也不一样,门齿用来切割食物,如:苹果、梨;犬齿用来撕碎食物。

如肉类;臼齿用来磨碎食物,如犬齿撕碎的肉类,就需要再用臼齿来磨碎,然后送到食道,胃,小肠,大肠进行消化。我恍然大悟,这不就是Java面向对象里的多态吗?多完美啊。

这也很好说明了为什么会有多态出现,因为生活中就存在太多这种例子,所以需要多态来匹配解决。

控制台小游戏 class YZDEL

{

public static void main(String[] args)

{

java.util.Random Shiji = new java.util.Random()

java.util.Scanner Shuru = new java.util.Scanner(System.in)

java.util.Scanner Nandu = new java.util.Scanner(System.in)

int YingxHP = 20

int YingxMP = 0

int MogHP = 20

int MogMP = 0

int MogDo = 0

int fangyu = 0

System.out.println("┏━━━━╮┏━━┣┣┓ ╮ ┓┏━┳━┳┓┓━┓ ")

System.out.println("┏┣━━━┓┏━━┣┣┓ ┃┏ ┃ ┃┓┃ ╯ ")

System.out.println("┣┣━━━┫╭━━┻╯╮ ┃╰┓┃ ┃╯┏━┣━━┓")

System.out.println("┣┣━━━┫┏━━━━┓╭━━┣━┛┗━┻━┻┛┃┃")

System.out.println("┏┣━━━┓┣━━━━┫ ┃┃┃┗╮╮┃┃┣━╯")

System.out.println(" ┛┗╯┗━━━━╯┗╯╰╰━━┛┛┗━╯╰━┛")

System.out.println()

System.out.println(" 作者:天狐空幻")

System.out.println()

System.out.println("说明:勇者的 *** 作方式为以下所示:")

System.out.println(" 使用攻击需消耗1MP 伤害1HP")

System.out.println(" 使用蓄力可增加1MP 伤害0HP")

System.out.println(" 使用躲闪需消耗0MP 伤害0HP 躲避攻击")

System.out.println(" 使用重击需消耗3MP 伤害2HP 防御无效")

System.out.println(" 恶龙攻击力高, 注意防御是取胜的关键")

System.out.println(" 恶龙MP达到4时可能会放出火焰无法躲避")

System.out.println(" 准备说明完毕,那么让我们来挑战恶龙吧!")

System.out.println("==================================")

//难度选择

System.out.println("请选择难度")

System.out.println("1.娱乐 2.挑战 3.噩梦")

int ND = Nandu.nextInt()

System.out.println("==================================")

while(true)

{

//HP,MP的显示

System.out.print("勇者: ")

System.out.print(" HP ")

for(int x=YingxHPx>0x--) System.out.print("*")

System.out.print(" "+YingxHP)

System.out.println()

System.out.print(" ")

System.out.print(" MP ")

for(int x=YingxMPx>0x--) System.out.print("*")

System.out.print(" "+YingxMP)

System.out.println()

System.out.print("恶龙: ")

System.out.print(" HP ")

for(int y=MogHPy>0y--) System.out.print("*")

System.out.print(" "+MogHP)

System.out.println()

System.out.print(" ")

System.out.print(" MP ")

for(int y=MogMPy>0y--) System.out.print("*")

System.out.print(" "+MogMP)

System.out.println()

System.out.println("==================================")

//胜利判定

if(YingxHP<1) {System.out.println()System.out.println("勇者HP为0! 不..不可能..我怎么会..勇者倒下了。再接再厉吧!~")System.out.println()break}

if(MogHP<1) {System.out.println()System.out.println("恶龙HP为0! 恶龙绝望的哀鸣中倒了下去。勇者胜利了。恭喜你挑战成功!!")System.out.println()break}

//角色输入判定

System.out.println("你要做什么:")

System.out.println("1.攻击 2.蓄力")

System.out.println("3.躲闪 4.重击")

System.out.println("____________________")

int Do = Shuru.nextInt()

//敌人输入判定

//娱乐难度

if(ND==1){

for(int i=1i<3i++) MogDo = Shiji.nextInt(4)}

//挑战难度

if(ND==2){

if(YingxMP==0&&MogMP==0) {MogDo = 0}

else if(MogMP==0){for(int i=1i<3i++) MogDo = Shiji.nextInt(2)}

else if(YingxMP>2&&MogMP>2) MogDo = 2

else if(MogMP<4) {for(int i=1i<4i++) MogDo = Shiji.nextInt(3)}

else MogDo = 3}

//噩梦难度

if(ND==3){

if(Do==1) MogDo=1

if(Do==2&&MogMP>0) MogDo=2

if(Do==2&&MogMP==0) MogDo=0

if(Do==3&&MogMP<4) MogDo=0

if(Do==3&&MogMP>=4) MogDo=3}//变态判定。。

//战斗分析

//防御

if(Do==3) {fangyu=1System.out.println("你灵巧的躲避攻击!")}

if(MogDo==1) {fangyu=1System.out.println("恶龙进行防御!")}

//角色判定

if(Do==1&&YingxMP==0) {System.out.println("MP不足!")}

if(Do==1&&YingxMP>0) {

if(fangyu==0) {MogHP=MogHP-1YingxMP=YingxMP-1System.out.println("你发动攻击!")}

if(fangyu==1) {YingxMP=YingxMP-1System.out.println("你的攻击被格挡!")}}

if(Do==2) {YingxMP=YingxMP+1System.out.println("你进行蓄力!")}

if(Do==4&&YingxMP<3) {System.out.println("MP不足!")}

if(Do==4&&YingxMP>2) {MogHP=MogHP-2YingxMP=YingxMP-3System.out.println("你发动重击!")}

if(Do>4) System.out.println("你不知所措...")

//敌人判定

if(MogDo==2&&MogMP==0) {System.out.println("恶龙在发呆!")}

if(MogDo==2&&MogMP>0) {

if(fangyu==0) {YingxHP=YingxHP-2MogMP=MogMP-1System.out.println("恶龙发动攻击!")}

if(fangyu==1) {MogMP=MogMP-1System.out.println("恶龙的攻击被躲开了!")}}

if(MogDo==0) {MogMP=MogMP+1System.out.println("恶龙进行蓄力!")}

if(MogDo==3&&MogMP<4) {System.out.println("恶龙在发呆!")}

if(MogDo==3&&MogMP>3) {YingxHP=YingxHP-4MogMP=MogMP-4System.out.println("恶龙发动火焰吐吸!躲避不能!")}

//结束

fangyu = 0

MogDo = 0

System.out.println("____________________")

System.out.println()

System.out.println("==================================") }

}

}

编写显示学生的学号、姓名的程序。包括用来设置和获得学生的学号、姓名数据的单独方法。创建2个员工对象

这样的问题,你试一下可以用jb来做啊。方法应该很简单的。以前有做过~~~都是用jb做的~~~~~~~~~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7799979.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存