java实验报告4继承与多态_接口与继承系列教材 (四)- 什么是Java的多态?

7 个答案

Anan丶

答案时间:2021-02-15

interface Mortal{

public void die();

}

class APHero extends Myheroes implements Mortal{

private int Movespeed;

public APHero(String name, float hp,int movespeed) {

super(name, hp);

this.Movespeed = movespeed;

}

public int getMovespeed(){

return this.Movespeed;

}

@Override

public void die() {

System.out.println("Kills"+this.getName()+","+this.getName()+"阵亡!");

}

}

class ADHero extends Myheroes implements Mortal{

private int Movespeed;

public ADHero(String name, float hp,int movespeed) {

super(name, hp);

this.Movespeed = movespeed;

}

public int getMovespeed(){

return this.Movespeed;

}

@Override

public void die() {

System.out.println(this.getName()+"阵亡!");

}

}

class ADAPHero extends Myheroes implements Mortal{

private int Movespeed;

public ADAPHero(String name, float hp,int movespeed) {

super(name, hp);

this.Movespeed = movespeed;

}

public int getMovespeed(){

return this.Movespeed;

}

@Override

public void die() {

System.out.println(this.getName()+"阵亡!");

}

}

class Myheroes {

private String name;

private float hp;

public Myheroes(String name,float hp){

this.name = name;

this.setHp(hp);

}

public String getName(){

return this.name;

}

public void setHp(float hp){

this.hp = hp;

}

public float getHp(){

return this.hp;

}

public void attack(){

System.out.println("攻击!");

}

public void kill(Mortal m){

if(m instanceof ADHero){

ADHero m2 = (ADHero) m;

System.out.print(name+"击杀了");

m2.die();

}

if(m instanceof APHero){

APHero m2 = (APHero) m;

System.out.print(name+"击杀了");

m2.die();

}

if(m instanceof ADAPHero){

ADAPHero m2 = (ADAPHero) m;

System.out.print(name+"击杀了");

m2.die();

}

}

public static void main(String[] args) {

Myheroes h1 = new Myheroes("盖伦",650.9f);

h1.kill(new ADHero("德莱文",350.9f,340));

h1.kill(new APHero("诡术妖姬",240.8f,345));

h1.kill(new ADAPHero("伊泽瑞尔",510.3f,325));

}

}

DQ970913

答案时间:2021-01-25

public void kill(Mortal m){

System.out.print(name+"击杀了");

m.die();

}

public static void main(String[] args) {

Hero a=new Hero("Lan",2500,300,450);

Hero temmo=new Hero();

Hero green=new Hero("Green",3000,100,450);

ADHero ad=new ADHero();

APHero ap=new APHero();

green.kill(ad);

green.kill(ap);

}

}

public interface Mortal {

public void die();

}

public class ADHero extends Hero implements Mortal{

@Override

public void die() {

System.out.println(" AD");

}

}

public class APHero extends Hero implements Mortal{

@Override

public void die() {

System.out.println(" AP");

}

}

cs-yyds

答案时间:2021-01-03

不写kill方法,调用个鸡儿啊。

kim-kim

答案时间:2021-01-01

package j2se;

public class Hero {

String name; //姓名

float hp; //血量

float armor; //护甲

int moveSpeed; //移动速度

public void kill(Mortal m){

System.out.print(name+"杀死了");

m.die();

}

public static void main(String args[]){

ADHero luban=new ADHero();

luban.name="亚瑟";

APHero xiaoqiao=new APHero();

xiaoqiao.name="小乔";

ADAPHero mongqi=new ADAPHero();

mongqi.name="梦琪";

Hero lanlinwang=new Hero();

lanlinwang.name="兰陵王";

lanlinwang.kill(luban);

lanlinwang.kill(xiaoqiao);

lanlinwang.kill(mongqi);

}

}

mikolee

答案时间:2020-11-20

如下

package charactor;

public interface AD {

public void physicAttack();

}

//============================

package charactor;

public interface AP {

public void magicAttack();

}

//============================

package action;

public interface Mortal {

public void die();

}

//============================

package charactor;

import action.Mortal;

public class ADHero extends Hero implements AD, Mortal {

public ADHero(String name, float hp, float armor, int moveSpeed) {

super(name, hp, armor, moveSpeed);

}

@Override

public void physicAttack() {

System.out.println("【" + this.getName() + "】进行物理攻击");

}

@Override

public void die() {

System.out.println("AD英雄:\t【" + this.getName() + "】死亡");

}

}

//=================================

package charactor;

import action.Mortal;

public class APHero extends Hero implements AP, Mortal {

public APHero(String name, float hp, float armor, int moveSpeed) {

super(name, hp, armor, moveSpeed);

}

@Override

public void magicAttack() {

System.out.println("【" + this.getName() + "】进行魔法攻击");

}

@Override

public void die() {

System.out.println("AP英雄:\t【" + this.getName() + "】死亡");

}

}

//====================================

package charactor;

import action.Mortal;

public class ADAPHero extends Hero implements AP,AD, Mortal {

public ADAPHero(String name, float hp, float armor, int moveSpeed) {

super(name, hp, armor, moveSpeed);

}

@Override

public void physicAttack() {

System.out.println("【" + this.getName() + "】进行物理攻击");

}

@Override

public void magicAttack() {

System.out.println("【" + this.getName() + "】进行魔法攻击");

}

@Override

public void die() {

System.out.println("AD/AP英雄:\t【" + this.getName() + "】死亡");

}

}

//======================================

import charactor.*;

import property.Armor;

public class LearnMain {

public static void main(String[] args){

Hero garen = new Hero("盖伦", 500, 40, 16);

ADHero akali = new ADHero("阿卡丽", 350, 25, 40);

APHero amumu = new APHero("阿木木", 280, 10, 28);

ADAPHero alistar = new ADAPHero("阿利斯塔", 380, 30, 27);

garen.kill(akali);

garen.kill(amumu);

garen.kill(alistar);

}

}

季无忧

答案时间:2020-11-16

父类是item,怎么没有effect?

每天都要学Java啊

答案时间:2020-10-30

这里的父类是 Item

Item 调用 effect 方法

Item LifePotion MagicPotion 都有 effect 方法啊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值