static 的 困惑
package a;
public class A {
public A() {};
protected void display(){};
}
--------------------------------------
package b;
import a.A;
public class B extends A{
public static void main(String[] args) {
B b = new B();
b.display();
A a = new A();
a.display(); //这行报错
}
}
******************************
如果将程序修改:
package a;
public class A {
public A() {};
protected static void display(){}; //加上static
}
------------------------------------------
package b;
import a.A;
public class B extends A{
public static void main(String[] args) {
B b = new B();
b.display();
A a = new A();
a.display(); //正常
}
}
为什么在类A的display()方法前加上static,就可以运行啦?请高手指教