java的继承中方法的调用注意点
静态方法
public class demo4 {
public static void main(String[] args) {
B a1=new A();
a1.test();
A a2=new A();
a2.test();
}
}
class B
{
static void test()
{
System.out.println("B");
}
}
class A extends B
{
static void test()
{
System.out.println("A");
}
}
运行结果:
B
A
可以看出静态方法的调用只和变量声明的类型相关,这个和非静态方法的重写之后的效果完全不同。
重写方法
public class demo4 {
public static void main(String[] args) {
B a1=new A();
a1.test();
}
}
class B
{
public void test()
{
System.out.println("B");
}
}
class A extends B
{
public void test()
{
System.out.println("A");
}
}
运行结果:
A
子类继承父类,调用a方法,如果a方法在子类中没有重写,那么就是调用的是子类继承父类的a方法;
如果重写了,那么调用的就是重写之后的方法。