3

有没有办法访问抽象类的受保护方法?

在 selenium webdriver 中,我无法访问“SingleBrowserLocator”类的受保护方法

http://selenium.googlecode.com/git/docs/api/java/index.html
4

2 回答 2

1

像这样:

public abstract class Foo {
    protected void method() { ... }
}

public class Bar extends Foo {
    public void method() {
        super.method();
    }
}

如果您不能创建子类(如上命名或匿名),那么反射(或使用它的东西)是您的最佳选择。

于 2013-07-24T09:55:58.257 回答
1

有3种方式:

  • 创建一个扩展该抽象类 SingleBrowserLocator 的新类(您必须在其中实现抽象方法);
  • 搜索 SingleBrowserLocator 的非抽象子类,该子类使该方法公开或具有调用受保护方法的其他公开方法;
  • 在提供对该方法的访问的 SingleBrowserLocator 的非抽象子类的同一包中搜索另一个类;

如果该方法对您有用并且在抽象类中被保护,那么更好或唯一正确的选择可能是您必须实现它的新子类(上面的第一个选择)。

于 2013-07-24T09:54:10.827 回答