如何访问抽象类的受保护方法?

时间:2013-07-24 09:42:36

标签: java selenium webdriver

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

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

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

2 个答案:

答案 0 :(得分:1)

有三种方式:

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

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

答案 1 :(得分:1)

像这样:

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

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

如果你不能创建一个子类(如上所述或匿名),那么反射(或使用它的东西)是你最好的选择。