A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bluebloodant 中级黑马   /  2014-12-8 15:17  /  2751 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1黑马币
class Fu
{
         static String age="50";
        Fu(String age)
        {
                this.age=age;
        }
        public static String get()
        {
                return age;
        }
}
class Son extends Fu
{
        int x=1;
        static String g;
        Son(int x)
        {
                super("");
                this.x=x;
        }       
        public static String get()
        {
               
                g=super.get();
                return g;
               
        }
}
为什么会报说 错误: 无法从静态上下文中引用非静态 变量 super
g=super.get();
   ^

最佳答案

查看完整内容

静态方法内不能定义this和super关键字

7 个回复

倒序浏览
康师傅-蛋黄派 来自手机 中级黑马 2014-12-8 15:17:48
沙发
静态方法内不能定义this和super关键字
回复 使用道具 举报
哦 好像是被覆盖了的方法就不能再调用?我把子类的get方法注释了之后就可以运行了。
回复 使用道具 举报
bluebloodant 发表于 2014-12-8 15:36
哦 好像是被覆盖了的方法就不能再调用?我把子类的get方法注释了之后就可以运行了。 ...

静态方法不能被覆盖
回复 使用道具 举报
好模糊,好好回看一下视频吧
回复 使用道具 举报
个人理解是这样的:this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。
回复 使用道具 举报
静态方法可以直接调用,非静态要用new来引用,相当于静态变量是在访问的原代码地址空间,非静态法访问静态
回复 使用道具 举报
静态方法中不能使用关键字的,使用的话会报错。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马