观察以下代码
class Car extends Vehicle
{
public static void main (String[] args)
{
new Car().run();
}
private final void run()
{
System.out.println ("Car");
}
}
class Vehicle
{
private final void run()
{
System.out.println("Vehicle");
}
}
下列哪些针对代码运行结果的描述是正确的?
- A
Car
- B
Vehicle
- C
Compiler error at line 3
- D
Compiler error at line 5
- E
Exception thrown at runtime
答案:A
首先final
声明的方法是不能被覆盖的,但是这里并不错误,因为方法是private
的,也就是子类没有继承父类的run
方法,因此子类的run
方法跟父类的run
方法无关,并不是覆盖。new Car().run()
也是调用子类的run
方法。
网友评论