首页 > 编程语言 >Java超类与子类

Java超类与子类

时间:2024-11-06 19:31:47浏览次数:3  
标签:Java String int 子类 hp Character 超类 public name

//角色
package ex1;

public class Character {
private final String name; //角色名字
private int hp; //角色血量
public static int charactsum = 0; //统计次数
private static String charmask = "普通角色";//角色的职业

public Character(String name, int hp) {
    this.name = name;
    this.hp = hp;
    charactsum++;
    System.out.printf("Character类调用 %d 次\n", charactsum);
}

public String getName() {
    return name;
}

public int getHp() {
    return hp;
}

public String charname(){           //返回角色名字和生命值
    return "我是" + getName() + "我的生命值" + getHp();
}
public String blackcharmask(){
    return charmask;
}

}
//战士
package ex1;

public class Warrior extends Character {
public static int warrisum = 0;
private final String charmask = "战士";

public Warrior(String name, int hp) {
    super(name,hp);
    warrisum++;
    System.out.printf("Warrior类调用 %d 次\n", warrisum);
}
public String blackcharmask(){
    return charmask;
}

}
//法师
package ex1;

public class Mage extends Character{
private final String charmask = "法师";
public static int magesum = 0;
public Mage(String name, int hp) {
super(name, hp);
magesum++; ;
System.out.printf("Mage类调用 %d 次\n", magesum);
}
public String blackcharmask(){
return charmask;
}
}
//冰法师
package ex1;

public class IceMage extends Mage{
private final String charmask = "法师";
public static int icemagesum = 0;
public IceMage(String name, int hp) {
super(name, hp);
icemagesum++;

    System.out.printf("IceMage类调用 %d 次\n", icemagesum);
}
public String blackcharmask(){
    return charmask;
}

}
//火法师
package ex1;

public class FireMage extends Mage{
private final String charmask = "法师";
public static int firemagesum = 0;

public FireMage(String name, int hp) {
    super(name, hp);
    firemagesum++;
    System.out.printf("FireMage类调用 %d 次\n", firemagesum);;
}

public String blackcharmask(){
    return charmask;
}

}
//测试package ex1;

public class Main {
private static void checkCharacter(Character c) { //通过创建角色的类判断角色的职业
System.out.println("这是" + c.blackcharmask()); //c.blackcharmsk() 使用函数获取角色职业
}
public static void main(String[] args) {
System.out.println("");
Character[] characters = new Character[5];
characters[0] = new Character("aa", 100);
characters[1] = new Warrior("bb", 100);
characters[2] = new Mage("cc", 100);
characters[3] = new IceMage("dd", 100);
characters[4] = new FireMage("ee", 100);
System.out.println("
");
System.out.println(characters[3].charname()); //使用charname()函数获取角色名字和HP;
System.out.println("*****************************");
for(Character c : characters) {
checkCharacter(c);
}
}
}
//结果
"C:\Program Files\Java\jdk-21\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.2.4\lib\idea_rt.jar=60555:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.2.4\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\34869\IdeaProjects\untitled\out\production\untitled ex1.Main


Character类调用 1 次
Character类调用 2 次
Warrior类调用 1 次
Character类调用 3 次
Mage类调用 1 次
Character类调用 4 次
Mage类调用 2 次
IceMage类调用 1 次
Character类调用 5 次
Mage类调用 3 次
FireMage类调用 1 次


我是dd我的生命值100


这是普通角色
这是战士
这是法师
这是法师
这是法师

进程已结束,退出代码为 0

标签:Java,String,int,子类,hp,Character,超类,public,name
From: https://www.cnblogs.com/wyqw/p/18530898

相关文章

  • Java面向对象进阶学习一
    this关键字使用this使用的变量时属性,没有使用的是形参this可以调用结构,成员变量,方法this的理解,当前对象(在方法中调用时),或当前正在创建的对象(在构造器中调用时)针对方法内的使用情况一般情况下,我们通过对想a调用方法,可以在方法内调用当前对象a的属性或其他的方法,此时,我们可......
  • 5.Java 数组(一维数组、二维数组、数组实例实操)
    一、数组1、基本介绍【数据类型】[]【数组名】=new【数据类型】[【长度】];【数据类型】[]【数组名】={【元素1】,【元素2】...};【数据类型】[]【数组名】=new【数据类型】[]{【元素1】,【元素2】...};数组中的元素可以是任何数据元素,包括基本类......
  • LeetCode100之接雨水(42)--Java
    1.问题描述        给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。        示例1输入:height=[0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下......
  • 【Java SE语法】抽象类(abstract class)和接口(interface)有什么异同?
    目录1.抽象类与接口的基本概念1.1 抽象类1.2接口2.抽象类与接口的异同2.1相同点2.2不同点3.拓展知识:多态与设计模式3.1多态3.2设计模式4.结论        在软件工程中,设计模式和代码结构的选择对于构建可维护、可扩展的系统至关重要。抽象类(Abstrac......
  • Java网络安全常见面试题
    列举常见的WEB攻击,及解决方案一、SQL注入1、什么是SQL注入攻击者成功的向服务器提交恶意的SQL查询代码,程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变,额外的执行了攻击者精心构造的恶意代码。2、如何预防SQL注入使用预编译语句(Prepa......
  • Java键盘录入
    键盘录入next()、nextLine()可以接受任意数据,但是都会返回一个字符串;nextInt()只能接受整数,键盘录入小数或者其他字母,就会报错;nextDouble()能接收整数和小数,但是都会看做小数返回,录入字母会报错。注意:next()、nextInt()、nextDouble()在接收数据的时候,会遇到空格,回车,制表符......
  • java计算机毕业设计基于的大学宿舍管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着大学教育的不断发展,高校规模日益扩大,学生数量不断增加,传统的宿舍管理方式面临着巨大的挑战。传统的手工登记和管理模式存在效率低下、信息容......
  • java计算机毕业设计最优网络购票系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着信息技术的飞速发展,网络购票系统在现代社会中的应用日益广泛。在交通、娱乐等多个领域,人们对于便捷、高效的购票方式需求不断增加。传统的购......
  • 使用 【Java】 集成 【Elasticsearch】:详细教程
    Elasticsearch是一个开源的分布式搜索引擎,它能够快速地存储、搜索和分析大量的文本数据。它基于ApacheLucene构建,广泛应用于日志分析、全文搜索、推荐系统等场景。本文将详细介绍如何在Java项目中集成Elasticsearch,包括如何配置、索引文档、查询数据、以及与Elasticsea......
  • 基于Java的家庭理财系统app设计和实现
    目录:目录:博主介绍: 完整视频演示:你应该选择我技术栈介绍:需求分析:系统各功能实现一览:1.注册2.登录部分代码参考: 项目功能分析: 项目论文:源码获取:博主介绍: ......