java中子类继承父类方法及调用规则

有时候我们会遇到这种情况:父类中有方法A和方法B,方法A中调用了方法B。某类继承该类,重写了方法B,但没有对方法A进行重写。那么在用子类的实例调用该方法A时,最终会运行哪一个方法B呢?

我们可以写一段简单的程序验证一下。

class A {
	public void printA() {
		System.out.println("printA");
		printWord();
	}
	
	void printWord() {
		System.out.println("printWord of A");
	}
}

class B extends A {
	@Override
	void printWord() {
		// TODO Auto-generated method stub
		System.out.println("printWord of B");
	}
}

main方法中使用这两个类。

B b = new B();
b.printA();

程序的运行结果如下:
printA
printWord of B
从结果中我们可以看到,最终调用的是子类中的方法B

你可能感兴趣的:(java)