Also, wir habenKann nicht geschützte Methode von Kind Klasse zugreifen
public abstract class A{
protected abstract String f();
}
public class B extends A{
protected String f(){...}
}
public class C extends A{
protected String f(){
A b = (A) Class.forName("B", true, getClass().getClassLoader()).newInstance();
return b.f();
}
Das bin ich nicht zulässt, dass b.f()
zuzugreifen und sagte, dass B.f()
im geschützten Bereich ist, wurde jedoch f
durch A
geschützt, und da C
erweitert A
, sollte es auch Zugriff auf f()
bekommen.
Warum nicht neue Instanz erstellen wie: A b = (A) neue B(); ? – Dmitry
B ist nur zur Laufzeit verfügbar. Wenn Sie wirklich wissen wollen, B ist 'com.android.okhttp.HttpsHandler' und A ist' URLStreamHandler' –
Sie können Ihren Fall durch Reflexion lösen, aber es wäre hilfreicher, wenn Sie Ihr * ursprüngliches * Problem bekanntgegeben hätten. Welche Methode von 'HttpsHandler' versuchen Sie anzurufen und warum brauchen Sie sie? Siehe [XY-Problem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Erwäge, eine neue Frage mit deinem ursprünglichen Problem zu öffnen. –