Java扩展和重写类

时间:2013-06-16 18:07:01

标签: java override extend

我有两节课:

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

我创造了第三个:

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

但我不确定是否会执行“某些逻辑”。有人可以判断它是否存在并且可能会推荐我关于扩展类和过度使用方法的好教程吗?

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如果您在//some logic的实例上调用//more logic,则methodC都将被执行。但你不应该接受我的话。要了解正在发生的事情,请尝试这些事情

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