0

I've got two classes:

class A{
    method(){}
}
class B extends A{
    @Override
    method(){
        super.method();
        //some logic
    }
}

and I have created third one:

class C extends B{
       @Override
       method(){
       super.method();
       //more logic
    }
}

but I am not sure whether "some logic" will be executed. Could someone tell if it is or not and maybe recommend me good tutorial about extending classes and overriading methods?

4

3 回答 3

3

当你调用扩展方法的 super() 类时,扩展的(父)方法将被调用。

这是一个很好的继承教程http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

于 2013-06-16T18:18:17.693 回答
1

如果您调用. //some logic_ 但你不应该相信我的话。看看发生了什么尝试这些事情//more logicmethodC

  • 添加打印语句以显示正在运行的代码位
  • 编译程序并使用它来分解它javap -c C以查看正在运行的代码。您将看到对超级方法的调用,然后是一些代码。当您运行该方法时,它将像任何其他方法调用一样调用此超级方法,然后像往常一样返回并继续。
于 2013-06-16T18:18:03.590 回答
0

您可以通过放置一些轻松尝试它System.out.println("some logic in B class");并查看它是否被调用。

于 2013-06-16T18:09:43.637 回答