父類的類上和方法上有自定義的注解,
子類繼承了這個父類,的情況下。
注解未寫@Inherited | 注解寫了@Inherited | |
子類的類上能否繼承到父類的類上的注解? | 否 | 能 |
子類方法,實現了父類上的抽象方法,這個方法能否繼承到注解? | 否 | 否 |
子類方法,繼承了父類上的方法,這個方法能否繼承到注解? | 能 | 能 |
子類方法,覆蓋了父類上的方法,這個方法能否繼承到注解? | 否 | 否 |
我們知道在編寫自定義注解時,可以通過指定@Inherited注解,指明自定義注解是否可以被繼承。
通過測試結果來看,@Inherited 只是可控制 對類名上注解是否可以被繼承。不能控制方法上的注解是否可以被繼承。
附注
-----------------------------------------------------------------
Spring 實現事務的注解@Transactional 是可以被繼承的,
通過查看它的源碼可以看到@Inherited。