java子類調(diào)用父類方法 子類繼承父類,怎么調(diào)用父類的方法?
子類繼承父類,怎么調(diào)用父類的方法?synchronized可以加在方法上也可以加在代碼塊上,加在方法上相當于代碼塊可以看到鎖的是對象?;氐侥氵@里的問題注意這里鎖的是對象,不管父類還是子類他們對應(yīng)的都是
子類繼承父類,怎么調(diào)用父類的方法?
synchronized可以加在方法上也可以加在代碼塊上,加在方法上相當于代碼塊
可以看到鎖的是對象?;氐侥氵@里的問題注意這里鎖的是對象,不管父類還是子類他們對應(yīng)的都是同一個對象,因為是一個對象在調(diào)用這個方法,此時this關(guān)鍵字指向的就是這個對象,你可以想象子類現(xiàn)在是這樣的:可以看到這里該對象的鎖獲取了兩次,如果鎖是不可重入的,那么第二次鎖將獲取不到。對象維持一個鎖的計數(shù)器,進入鎖加一,退出鎖減一,如果為零則可以獲取該鎖。沒有你提到的子類對象和父類對象之分。這里需要注意的是:synchronized(Son.class){ }synchronized(Foo.class){ }這兩個鎖的是類的類類型,也就是Class類的實例對象,每一個類編譯之后會生成一個.class文件,.class文件加載到j(luò)vm中時會實例化一個對應(yīng)的Class對象,并且只會實例化一次。