我有一個類A
在Java和A
有一定的保護方法,然後我有一個類B
其extends
從A
使B
可以覆蓋這些受保護的方法。然後,我希望能夠擁有C
類別extends
類別B
,但類別C
不應該能夠調用A
的受保護方法。有沒有在Java中這樣做?我只是讓父類的方法被覆蓋並讓它們最終?胃內Java的孫子對象不準叫父母或祖父母的方法
public class A()
{
protected void somemethod();
protected int somevariable;
}
public class B() extends A
{
@Override
final protected void somemethod();
//How do I make some variable final or not accessible to my children?
}
public class C() extends B
{
//Now I cannot override somemethod! Is that right?
}
是的,你說得對。爲什麼你不試試呢?而且你不應該在類名後面加括號。 –
爲什麼地獄裏有類名(?)?這是有效的(我懶得試試它:D)? –
我認爲不可能重寫一個方法,並突然使它成爲'final'。這將是一個非法的覆蓋,因爲在編譯器的眼中,它不是同一個方法,但它也無法區分調用哪個方法的方法。因此:無效。 (我不完全確定,需要檢查它。) – 11684