为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我不能在这里创建抽象类的对象并且我得到了非静态变量的错误,这不能从静态上下文中引用

为什么我不能在这里创建抽象类的对象并且我得到了非静态变量的错误,这不能从静态上下文中引用

慕侠2389804 2022-07-20 12:15:23
执行此代码时出现错误。为什么我得到不能从静态上下文引用的非静态变量?  class javatest{     public abstract class Employee {            public abstract void names();                 }      public class Banani extends Employee{            @Override            public void names(){               System.out.println("I am at Banani.");             }          }       public class Shyamoli extends Employee{              @Override              public void names(){              System.out.println("I am at Shyamoli");       }   }        public static void main(String[] args){           Employee south = new Banani();           Employee north = new Shyamoli();           north.names();           south.names();        }       }
查看完整描述

4 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

您可以将您的课程移到外面或使它们成为静态的。


public abstract class Employee {

    public abstract void names();

    }


public class Banani extends Employee {

    @Override

    public void names() {

        System.out.println("I am at Banani.");

    }

}


public class Shyamoli extends Employee {

    @Override

    public void names() {

        System.out.println("I am at Shyamoli");

    }

}


class javatest {


    public static void main(String[] args) {

        Employee south = new Banani();

        Employee north = new Shyamoli();

        north.names();

        south.names();

    }

}


查看完整回答
反对 回复 2022-07-20
?
桃花长相依

TA贡献1860条经验 获得超8个赞

在您的代码示例中,没有一个子类实现抽象方法office (),因此BananiShyamoli都是抽象的,不能被实例化



查看完整回答
反对 回复 2022-07-20
?
喵喔喔

TA贡献1735条经验 获得超5个赞

我建议您使用 IDE,它会为您提供足够的信息。



查看完整回答
反对 回复 2022-07-20
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

更正的代码如下


abstract class Employee {

public abstract void names();


public abstract void offices();

}


class Banani extends Employee {

@Override

public void names() {

    System.out.println("I am at Banani.");

}


@Override

public void offices() {

    // TODO Auto-generated method stub


}

}


class Shyamoli extends Employee {

@Override

public void names() {

    System.out.println("I am at Shyamoli");

}


@Override

public void offices() {

    // TODO Auto-generated method stub


}

}


public class javatest {

public static void main(String[] args) {

    Employee south = new Banani();

    Employee north = new Shyamoli();

    north.names();

    south.names();

}

}



查看完整回答
反对 回复 2022-07-20
  • 4 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信