Java报错Cannot make a static reference to the non-static method——无法从静态上下文中引用非静态方法。

2023-11-16

在写继承相关练习代码时,遇到以下问题:

Cannot make a static reference to the non-static method show() from the type Student(翻译过来就是无法对非静态方法的进行静态引用),相信很多人第一个想法就是在Student里面的show方法加上static,也就是将这个类转化为静态方法,但是实际上这个是不可以的。如果去掉的话,就无法继承和重载父类中的show方法了,因此我们得看看是不是别的错误。

详情请看截图:

注意看,我新建了一个student对象,但是我用的还是通过类Student的show方法,而不是通过student对象去使用这个show的方法,所以编译器就会报错Cannot make a static reference to the non-static method show() from the type Student,此时我们只需要将Student改为student就行了。

详细代码如下:

public class Person {
    String name;
    char sex;
    int age;
    // 构造函数,设置父类person对象信息
    public Person(String name, char sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    //输出父类person对象信息
    public String show() {
        return "姓名:" + name + ", 性别:"+ sex + ", 年龄:" + age;
    }
}

public class Student extends Person {

    int id;

    public Student(String name, char sex, int age,int id) {
        super(name, sex, age);
        this.id = id;
    }

    @Override
    public String show() {
        return super.show()+ name + age + sex + id;
    }
}
public class PersonApp {
	
    public static void main(String[] args) {
        Person person=new Person("小明",'男',20);
        System.out.println(person.show());
        
        Student student=new Student("小天",'男',21,143);
        System.out.println(student.show());
    }
}

其实这个错误,我在之前的分享中也提到了,详情可以参考:

无法从静态上下文中引用非静态方法

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java报错Cannot make a static reference to the non-static method——无法从静态上下文中引用非静态方法。 的相关文章

随机推荐

  • 计算机致命命令,[注意]13 个致命的Linux 命令

    本文收集所有你不能在 Linux 下执行的命令 执行任何下列命令 之一 会让你丢失数据或造成数据损坏 冻结或挂起你运行中的 Linux 系统 千万不要在 Linux 文本界面运行下列命令 NEVER RUN THE FOLLOWING CO
  • 获取单选框值

    function getRadioVal nameVal var inputs document getElementsByName nameVal var checkVal for var i 0 len inputs length i
  • 海思3559:uboot顶层Makefile分析

    顶层Makefile的内容主要结构为 确定版本号及主机信息 实现静默编译功能 设置各种路径 设置编译工具链 设置规则 设置与cpu相关的伪目标 需要注意的是 结构顺序并不代表代码执行顺序 1 确定版本号及主机信息 VERSION 2016
  • 群辉 Synology NAS Docker 安装 RustDesk-server 自建服务器只要一个容器

    from https blog zhjh top archives M8nBI5tjcxQe31DhiXqxy 简介 之前按照网上的教程 rustdesk server 需要安装两个容器 最近想升级下版本 发现有一个新镜像 rustdesk
  • 零基础学Python 爬虫-笔记

    零基础学Python 爬虫 Tony老师 普门教育 python 兼容 3 8 5 pycharm 付费 免费 写项目有区别 破解版2019 代码提示 爬虫 概念 科技 智能化 互联网 数据时代 智能家居 爬虫 批量的采集数据 网络 cpo
  • 关于Spring 的IoC和AOP的面试题,快看看你都能答上来哪些

    推荐 前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到网站 博客首页 派 大 星 欢迎关注 点赞 收藏 留言 本文由派大星原创编撰 系列专栏 迎战面试 本系列分享自己准备面试的过程和一些经典的面试
  • 从0开始实现简易版vue2

    文章目录 前言 原理 思路分析 实现Observer 实现Watcher 实现Compile 前言 Vue js的双向绑定原理是其最重要的特性之一 它使得数据模型和DOM之间的同步变得非常简单和高效 先上个成果图来吸引各位 new Simp
  • MySQL B+树索引

    MySQL B 树索引B 树是MySQL中最常用的索引结构 它是B树的变种 区别在于B 树的非叶子节点不保存数据 只保存节点指针 这使得B 树层次更少 查询效率更高 B 树的特点 1 非叶子节点不保存数据 只有叶子节点保存实际数据 这使树更
  • hive DEBUG

    输出 DEBUG 日志 使用以下参数 hive hiveconf hive root logger DEBUG console 远程调试 hive cli hive debug 此命令监听 8000 端口 可以使用远程调试连接此 jvm 远
  • win10系统 Mysql初始化报错:[ERROR] --initialize specified but the data directory has files in it. Aborting

    解决方法 1 删除以前安装的Mysql文件夹 data文件夹保存自己创建使用过的表单 可以数据迁移到其他mysql版本 2 查看自己是否已经初始化 如果当前安装版本的Mysql文件夹根目录是否存在data文件夹 如果存在 则已经初始化 可以
  • DSS部署-3、创建hadoop用户

    文章目录 第三部分 创建hadoop用户 第三部分 创建hadoop用户 1 创建一个名字为hadoop的普通用户 root bigdata senior01 useradd hadoop root bigdata senior01 pas
  • IDEA-常用配置

    一 Appearance Behavior 1 1 设置主题 1 2 设置窗体及菜单的字体及大小 二 Editor General 2 1 设置自动导包的功能 Add unambiguous imports on the fly 自动导入不
  • 提升前端开发效率:基于vue的van-radio-group组件封装指南

    前言 vant 作为一款流行的 ui 框架 其中 van radio group 组件是一个常用的单选框组件 但有时我们需要根据项目需求进行定制化封装 本文将介绍如何基于 vue 框架封装 van radio group 组件 让我们一起来
  • threejs 全景区加可点击标注

  • Alibaba Arthas 3.1.2版本发布:增加logger/heapdump/vmoption命令,支持tunnel server

    Arthas是Alibaba开源的Java诊断工具 深受开发者喜爱 Github https github com alibaba arthas 文档 https alibaba github io arthas Arthas 3 1 2版
  • 攻坚三维重建 群核科技这项成果入选ICCV 2023

    在全屋定制行业场景中 CAD图纸是设计方案重要的呈现方式 而门店设计师完成的CAD图纸到了生产和施工端 机器无法直接识别 往往需要人工将CAD图纸包含的设计语言转化成三维模型 再进一步生成可供生产线加工的数据 这对数据准确性 拆单效率和工厂
  • S3C6410启动机制

    1 上电以后 会先启动片内的iROM中的程序 这部分主要初始化时钟和看门狗一些外围器件 2 第二步把BL1中的程序加载到片内RAM中 希望BL1程序比较小 主要希望去配置主存 3 配置好主存后 再把BL2加载到主存SDRAM中 然后把程序的
  • Ubuntu下vscode配置ROS环境

    摘要 最近准备放弃用clion开发ROS使用更主流的vscode 整理一下在ubuntu18 04下的VSCode安装和ROS环境配置流程 安装 方法一 软件商店安装 个人还是推荐使用ubuntu软件下载vscode 简单不容易出错 方法二
  • Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContext

    Caused by java lang ClassNotFoundException org springframework context ApplicationContext java lang IllegalStateExceptio
  • Java报错Cannot make a static reference to the non-static method——无法从静态上下文中引用非静态方法。

    在写继承相关练习代码时 遇到以下问题 Cannot make a static reference to the non static method show from the type Student 翻译过来就是无法对非静态方法的进行静