Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เราสามารถแทนที่วิธีการที่ได้รับการป้องกันใน Java ได้หรือไม่?


ใช่ วิธีการป้องกันของซูเปอร์คลาสสามารถ แทนที่ โดยคลาสย่อย หากเมธอด superclass ได้รับการปกป้อง เมธอด subclass overridden สามารถมี protected หรือ สาธารณะ (แต่ไม่ใช่ ค่าเริ่มต้น หรือ ส่วนตัว ) ซึ่งหมายถึง คลาสย่อย วิธีการแทนที่ไม่สามารถมีตัวระบุการเข้าถึงที่อ่อนแอกว่า .

ตัวอย่าง

class A {
   protected void protectedMethod() {
      System.out.println("superclass protected method");
   }
}
class B extends A {
   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