ได้ เมธอด protected ของซูเปอร์คลาสสามารถ override โดยซับคลาสได้ หากเมธอดซูเปอร์คลาสเป็น protected ซับคลาสที่ override ต้องเป็น protected หรือ public (ไม่ใช่ default หรือ private) หมายถึง ไม่สามารถลดระดับการเข้าถึง (weaker access) ได้
ตัวอย่าง: Override protected method
class A {
protected void protectedMethod() {
System.out.println("superclass protected method");
}
}
class B extends A {
@Override
protected void protectedMethod() {
System.out.println("subclass protected method");
}
}
public class Test {
public static void main(String args[]) {
B b = new B();
b.protectedMethod();
}
}
ผลลัพธ์
subclass protected method
กฎ Access Modifier ใน Override:
- public → public
- protected → protected หรือ public
- default (package-private) → default, protected, หรือ public
- private → ไม่สามารถ override ได้ (ไม่มองเห็น)