我有一个代码如下:
Class A{
protected void method1(){
//i have  logic which will fetch the results from the database
}
}
我还有一个课程扩展了A班:
Class B extends A{
    //some logic
    }
现在执行了多少个数据库调用?一个或两个?
如果你这样做:
new B().method1()
method1()只代表B对象调用一次.JVM正在做的是它B.method1()首先尝试查找.如果它被重写的B,它会调用它(和完全跳过A.method1()).但由于B没有覆盖它,原来A.method1()被透明地称为.
如果B会覆盖method1()调用原始的唯一方法A.method1()就是调用super.method1()里面B.
| 归档时间: | 
 | 
| 查看次数: | 316 次 | 
| 最近记录: |