public class TestGet {
public void a() {
System.out.println("aaa");
}
public void b() {
a();
}
}
public class TestGet2 extends TestGet {
public void a() {
System.out.println("bbb");
}
public static void main(String[] args) {
TestGet t = new TestGet2();
t.b();
}
}
//打印结果是bbb
修改下代码
public class TestGet {
public static void a() {
System.out.println("aaa");
}
public void b() {
a();
}
}
public class TestGet2 extends TestGet {
public static void a() {
System.out.println("bbb");
}
public static void main(String[] args) {
TestGet t = new TestGet2();
t.b();
}
}
//打印出来什么呢
结果是aaa
为什么呢?原因就在静态方法不存在多态性。是TestGet 的就是TestGet 的,不会是TestGet2的静态方法。此外static方法不存在子类覆盖父类。他们属于类本身所有对象所共享。
public void a() {
System.out.println("aaa");
}
public void b() {
a();
}
}
public class TestGet2 extends TestGet {
public void a() {
System.out.println("bbb");
}
public static void main(String[] args) {
TestGet t = new TestGet2();
t.b();
}
}
//打印结果是bbb
修改下代码
public class TestGet {
public static void a() {
System.out.println("aaa");
}
public void b() {
a();
}
}
public class TestGet2 extends TestGet {
public static void a() {
System.out.println("bbb");
}
public static void main(String[] args) {
TestGet t = new TestGet2();
t.b();
}
}
//打印出来什么呢
结果是aaa
为什么呢?原因就在静态方法不存在多态性。是TestGet 的就是TestGet 的,不会是TestGet2的静态方法。此外static方法不存在子类覆盖父类。他们属于类本身所有对象所共享。