ฉันกำลังเรียกวิธีการป้องกันของคลาสซุปเปอร์จากคลาสย่อย เหตุใดวิธีนี้จึง "มองไม่เห็น"
ฉันได้อ่านโพสต์บางโพสต์เช่นอันนี้ที่ดูเหมือนว่า ที่จะโต้แย้งดังต่อไปนี้:
ซูเปอร์คลาส:
package com.first;
public class Base
{
protected void sayHello()
{
System.out.println("hi!");
}
}
คลาสย่อย:
package com.second;
import com.first.Base;
public class BaseChild extends Base
{
Base base = new Base();
@Override
protected void sayHello()
{
super.sayHello(); //OK :)
base.sayHello(); //Hmmm... "The method sayHello() from the type Base is not visible" ?!?
}
}