Java 如何访问抽象类的受保护方法?
有没有办法访问抽象类的受保护方法 在selenium webdriver中,我无法访问类“SingleBrowserLocator”的受保护方法 有三种方法:Java 如何访问抽象类的受保护方法?,java,selenium,webdriver,Java,Selenium,Webdriver,有没有办法访问抽象类的受保护方法 在selenium webdriver中,我无法访问类“SingleBrowserLocator”的受保护方法 有三种方法: 创建一个扩展抽象类SingleBrowserLocator的新类(必须在其中实现抽象方法) 搜索SingleBrowserLocator的非抽象子类,该子类使该方法成为公共的或具有调用受保护方法的其他公共方法 在SingleBrowserLocator的非抽象子类的同一个包中搜索另一个类,该子类提供对该方法的访问 如果该方法对您有用并
- 创建一个扩展抽象类SingleBrowserLocator的新类(必须在其中实现抽象方法)李>
- 搜索SingleBrowserLocator的非抽象子类,该子类使该方法成为公共的或具有调用受保护方法的其他公共方法李>
- 在SingleBrowserLocator的非抽象子类的同一个包中搜索另一个类,该子类提供对该方法的访问李>
public abstract class Foo {
protected void method() { ... }
}
public class Bar extends Foo {
public void method() {
super.method();
}
}
如果您不能创建子类(如上所述,或匿名),那么反射(或使用它的东西)是您的最佳选择。您可以对其进行子类化吗?
受保护的
成员只能由相同包或子类中的类访问。也许读。(显然,你可以通过反射来访问它,但那是另一回事)。尝试将该类扩展到一个子类,我想调用受保护的方法吗?我已扩展此抽象类“SingleBrowserLocator”,但受保护的方法不可见。1)类浏览器扩展SingleBrowserLocator 2)public void browserTest(){Browser obj=new Browser();对象未显示受保护的方法。public method(){super.method();}它显示“public method()”的错误消息修正了…我忘记了返回类型。
public abstract class Foo {
protected void method() { ... }
}
public class Bar extends Foo {
public void method() {
super.method();
}
}