- 首先要高秦楚静态方法概念
- 静态方法是使用公共内存空间的,就是说所有对象都可以直接引用,不需要创建对象再使用该方法,属于类方法可以继承但不能重写。<
下面例子:比如A类有一个static的方法aa();B类也有一个继承A类的静态方法aa();
当我们实例化子类 A a=new B(); 然后a.aa();此时我们想调用的是B类重写的方法;但是此时java实际调用的是父类aa()方法,所以就体现不了多态了即认为不能重写;
但是当我们实例化子类时:子类引用指向子类对象(B b=new B());然后b.aa(),由于这个b.add()是静态的,这个类不能通过实例化来创建第二份,是类方法。所以子类不能通过继承来重写这个方法,只是隐藏了父类的方法属于一个新的方法。所以这里没有体现多态。
public class Test {
public static void main(String[] args) {
A a = new B();
a.aa();
}
}
class A {
public static void aa() {
System.out.println("基类");
}
}
class B extends A {
public static void aa() {
System.out.println("子类");
}
}
输出:基类