0%

Exception(Java)

Non-static method ‘function()’ cannot be referenced from a static context

在Java中,静态方法是与类关联的方法,可以直接通过类名调用,而不需创建类的实例对象。而非静态方法是与实例对象关联的方法,需要通过实例对象来调用。

注意在静态方法内部创建的实例对象只在该方法内部可见,无法在静态方法之外的其他方法中访问。每次调用静态方法时都会创建一个新的实例对象。

如果需要在静态方法中频繁地访问实例变量,考虑将这些变量声明为静态变量,或者重新评估你的设计,确保你的静态方法只访问静态成员,而不依赖与对象的状态。


There is no default constructor available in ‘Path

如果一个类不设置构造方法,编译器会默认为其创建一个无参构造,但你设置一个有参数的构造方法时,默认创建的无参构造方法会被抛弃,若要使用还需在类中设置出来。

再通过new实例化子类的时候,子类的构造方法会先调用父类的构造方法,如果子类未设置,那么会默认super调用超类的无参构造。

当超类中为设置无参构造时,如超类中只设置一个有参构造时,或者超类为设置无参构造,派生类设置无参构造时,就会出现上述初始化不成功的编译错误。

即在子类中,至少需要有一个和父类一致的构造方法,才能正常的初始化。