Я пытаюсь использовать публичный метод в абстрактном классе.Я пытался использовать этот метод из открытого метода, который находится внутри открытого класса, который расширяет другой абстрактный класс, но компилятор дал мне:
"non-static method method_name() cannot be referenced from a static context"
Что мне нужно, чтобы заставить его работать с этим методом?
public class Dingo extends Animal
{
public void act()
{
if (kangarooCrossing())
{
Weapon.killAnimalMySquare(); //<<<<<<<<<< THE Problematic line
}
if(canMove())
move();
else
changeDirection();
}
// returns true if a Kangaroo is crossing.
private boolean kangarooCrossing()
{
Actor kangaroo = getOneObjectAtOffset(0, 0, Kangaroo.class);
if(kangaroo != null) {
return true;
}
else {
return false;
}
}
}
abstract class Weapon extends Actor
{
/**Kills an animal that steps on current square*/
public void killAnimalMySquare()
{
Actor animal = getOneObjectAtOffset(0, 0, Animal.class);
if(animal != null)
getWorld().removeObject(animal);
}
/**returns true if an animal is crossing*/
public boolean animalCrossing()
{
Actor animal = getOneObjectAtOffset(0, 0, Animal.class);
if(animal != null)
return true;
return false;
}
}
Thnx !!!