-1

I am getting an error while executing this code. Why I am getting Non-static variable this cannot be referenced from a static context?

  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();
        }
       }
DEBASHIS BAIDYA
  • 310
  • 1
  • 4
  • 14

4 Answers4

0

In your code example None of the subclasses implements abstract method offices() , because of this Banani and Shyamoli are both abstract and can't be instntiated

GiorgosDev
  • 1,757
  • 1
  • 14
  • 16
0

You can either move your classes outside or make them static.

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();
    }
}
ManojP
  • 6,113
  • 2
  • 37
  • 49
0

I suggest you use an IDE, which will give you enough information.

mobel
  • 11
  • 1
0

corrected code below

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();
}
}
resatz
  • 536
  • 3
  • 8