一、Hero类
// 类名每个单词首字母大写
// 变量名、方法名第一个单词首字母小写,第二个单词开始首字母大写
public class Hero {
String name; // 英雄名称
float hp; // 血量
float armor; // 护甲
int moveSpeed; // 移动速度
}
二、ADHero类
// 类和对象 3 方法重载 1 方法重载的概念
// 方法重载:方法名相同,参数类型或数量不同
// 使用时,根据传入的参数自动判断调用哪一个方法
// 物理攻击英雄
public class ADHero extends Hero {
public void attack() {
System.out.println(name + " 对 他人 进行了攻击,一顿操作猛如虎");
}
public void attack(Hero h1) {
System.out.println(name + " 对 " + h1.name + " 进行了攻击,一顿操作……");
}
public void attack(Hero h1, Hero h2) {
System.out.println(name + " 对 " + h1.name + " 和 " + h2.name
+ " 进行了攻击,一顿操作……");
}
// 攻击了多个英雄
// 可变数量的参数
public void attack(Hero... heros) {
for (int i = 0; i < heros.length; i++) {
System.out.println(name + " 攻击了 " + heros[i].name);
}
}
public static void main(String[] args) {
ADHero h1 = new ADHero();
h1.name = "赏金猎人";
ADHero h2 = new ADHero();
h2.name = "盖伦";
ADHero h3 = new ADHero();
h3.name = "提莫";
ADHero h4 = new ADHero();
h4.name = "曹操";
h1.attack();
h1.attack(h2);
h1.attack(h2, h3);
// 可变数量的参数
h1.attack(h2, h3, h4);
}
}
运行结果:
三、练习
// 类和对象 3 方法重载 2 方法重载练习
// 辅助类 辅助其他英雄 例如加血等……
public class Support extends Hero {
public void heal() {
System.out.println(name + " 辅助了 不知名的人!");
}
public void heal(Hero h1) {
System.out.println(name + " 辅助了 " + h1.name);
}
public void heal(Hero h1, int hp1) {
hp -= hp1; // 本人血量减
h1.hp += hp1; // 队友血量加
System.out.println(name + " 辅助了 " + h1.name + " 并给他加了 " + h1.hp + " 血");
}
public static void main(String[] args) {
Support s1 = new Support();
s1.name = "盖伦";
s1.hp = 100.0f;
Support s2 = new Support();
s2.name = "提莫";
Support s3 = new Support();
s3.name = "曹操";
s1.heal();
s1.heal(s2);
System.out.println(s1.name + " 为队友加血前血量:" + s1.hp);
s1.heal(s3, 30);
System.out.println(s1.name + " 为队友加血后血量:" + s1.hp);
}
}
运行结果:
我的学习源泉:https://how2j.cn/k/class-object/class-object-overload/291.html?p=114999
Java自学网站:https://how2j.cn?p=114999