现有一个使用此方法的类
protected HttpResponse post(String route,String json,BasicNameValuePair ... parameters)抛出IOException
我正在另一个包中创建一个子类,但想调用此方法。我该怎么做?
此外,子类的父类是抽象的,因此我无法实例化它。
答案 0 :(得分:1)
package package2;
import package1.Parent;
class Child extends Parent //assuming Parent is in package 1
{
@Override
protected HttpResponse post(...)
{
super.post(...)
//Remaining stuff
}
}
答案 1 :(得分:-1)
评论者将答案联系在一起。我想我错误地删除了那条评论:
Call protected method from a subclass of another instance of different packages
答案 2 :(得分:-1)
William,您可以从子类的任何方法调用该方法,前提是您用于调用它的引用是子类的类型或子类的类型(其中,基本原理在我的中解释)回答this问题)。作为简化示例,请考虑此父类
package parent;
public class Parent {
protected void method() {
System.out.println("parent.Parent.method() called");
}
}
由Child类扩展
package child;
import grandchild.Grandchild;
import parent.Parent;
public class Child extends Parent {
public void anyMethod(Child child, Grandchild grandchild) {
this.method();
child.method();
grandchild.method();
}
}
反过来,由孙子课延长。
package grandchild;
import child.Child;
public class Grandchild extends Child {
}
鉴于此类层次结构,此代码
Child child1 = new Child();
Child child2 = new Child();
Grandchild grandchild = new Grandchild();
child1.anyMethod(child2, grandchild);
将产生以下输出。
parent.Parent.method() called
parent.Parent.method() called
parent.Parent.method() called
因此,Child对象可以访问其自己的protected method()成员以及另一个Child实例的method()成员或Child子类的实例。但是,它不能使用类型为Parent的引用(除非它使用super)或Parent的不同子类(例如,Brother)调用该方法。
我希望这可以回答你的问题并让你知道你能做什么(或不能做什么)。如果没有,请告诉我。