在Java中,方法有四个可用的访问修饰符:
public -任何类都可以使用此方法。
protected -同一包中的类和任何包中的子类都可以使用此方法。
private -只有此类可以使用此方法。
no modifier (“包私有”)-只有同一包中的类才能使用此方法。
经常发生的事情是,我想在超类中拥有所有子类都可以使用的有用方法。但是其他类访问此方法没有任何意义,从某种意义上说,它将破坏封装。
因此,我必须在超类publicor中声明这些有用的方法protected,这至少在包中将它们公开给所有其他类。即使它们仅打算由子类使用。
有没有理由subclasses-only在Java中没有访问修饰符?对我来说似乎很奇怪。我想念什么吗?
同样,subclasses-only当您只想将变量公开给子类时,访问修饰符也很有用。在我身上发生的事情很多。