为什么我不能从另一个类中的方法获得返回值,如果它不是静态的?

时间:2013-06-17 03:27:20

标签: java interface static

我只是在学习接口,我正试着玩弄它们。我注意到你不能在接口中使方法静态。我开心地走了,但是当我尝试从另一个班级获得我的一个方法的返回值时,我注意到我不能。如果你愿意的话,请考虑这是一个愚蠢的问题,它是否也适用于Java,但在使用这种语言进行编程时,我并不完全先进。这是我的界面:

public interface Item 
{
     boolean organia();
} 

实现界面的类:

public class Car 
{
     @Override
     public boolean organia() 
     {
         return false;
     }
}

使用main方法的类:

public class Main 
{
    static Car car;

    public static void main(String args[]) 
    {
        System.out.println(car.organia());
    }   
}

5 个答案:

答案 0 :(得分:2)

要调用实例方法,您需要创建一个实例。

System.out.println( new car().organia();

您经常需要保留对新实例的引用。

car mycar = new car();
System.out.println( mycar.organia() );

答案 1 :(得分:0)

您需要初始化变量:

static car car = new car();

然后您的代码将运行正常。

答案 2 :(得分:0)

老兄,你班上的实例在哪里?如果没有实例,则无法调用实例方法。

Car car = new Car();
System.out.println(car.oragania());

应该做你想做的事。

或者您也可以初始化静态汽车变量

static Car car = new Car();

答案 3 :(得分:0)

  1. 您的Car类需要实现您的Item接口
  2. 汽车名称通常按惯例大写
  3. 当你想调用organia方法时,你需要创建一个新的Item()或new Car()

    public class Car implements Item {
           @Override
           public boolean organia() {
                return false;
    }
    
    
    public class Main {
    
        public static void main(String args[]) {
            System.out.println(new Item().organia());
            System.out.println(new Car().organia());
        }
    
    }
    

答案 4 :(得分:0)

接口只是对类应该实现的描述

public class Car implements Item {
       @Override
       public boolean organia() {
           return false;
}

即使您创建了该类的静态版本(您不需要,也可以在Main方法中创建它:

public static void main(String args[]) {
Car car = new Car()
    System.out.println(car.organia());
}
祝你好运!