黑马程序员技术交流社区

标题: 静态访问非静态错误 [打印本页]

作者: bluebloodant    时间: 2014-12-8 15:17
标题: 静态访问非静态错误
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();
   ^


作者: 康师傅-蛋黄派    时间: 2014-12-8 15:17
静态方法内不能定义this和super关键字
作者: bluebloodant    时间: 2014-12-8 15:36
哦 好像是被覆盖了的方法就不能再调用?我把子类的get方法注释了之后就可以运行了。
作者: lwh316658735    时间: 2014-12-8 15:48
bluebloodant 发表于 2014-12-8 15:36
哦 好像是被覆盖了的方法就不能再调用?我把子类的get方法注释了之后就可以运行了。 ...

静态方法不能被覆盖
作者: 木乃伊    时间: 2014-12-8 22:09
好模糊,好好回看一下视频吧
作者: 陈均林    时间: 2014-12-9 21:53
个人理解是这样的:this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。
作者: 嗷嗷嗷    时间: 2014-12-10 22:22
静态方法可以直接调用,非静态要用new来引用,相当于静态变量是在访问的原代码地址空间,非静态法访问静态
作者: 武汉小菜鸟    时间: 2014-12-17 23:29
静态方法中不能使用关键字的,使用的话会报错。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2