我有两节课:
class A{
method(){}
}
class B extends A{
@Override
method(){
super.method();
//some logic
}
}
我创造了第三个:
class C extends B{
@Override
method(){
super.method();
//more logic
}
}
但我不确定是否会执行“某些逻辑”。有人可以判断它是否存在并且可能会推荐我关于扩展类和过度使用方法的好教程吗?
答案 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
,则method
和C
都将被执行。但你不应该接受我的话。要了解正在发生的事情,请尝试这些事情
javap -c C
取消分配,以查看正在运行的代码。您将看到对超级方法的调用,然后是一些代码。当您运行该方法时,它将像任何其他方法调用一样调用此超级方法,然后像往常一样返回并继续。