若子類別繼承父類別,使用Java 反射(Reflection)機制可以使用Class.getMethod(String name, Class<?>... parameterTypes)
取得父類別的public
方法。
下面分別定義了父類別Parent
及子類別Child
,使用反射時可透過Class.getMethod()
取得父類別的public
方法。
import java.lang.reflect.Method;
public class App {
public static void main(String[] args) throws Exception {
Child child = new Child();
Method method = child.getClass().getMethod("getAttr1");
String s = (String) method.invoke(child);
System.out.print(s);
}
}
class Parent {
private String attr1 = "hello";
public String getAttr1() {
return attr1;
}
public void setAttr1(String attr1) {
this.attr1 = attr1;
}
}
class Child extends Parent {
}
印出以下結果
hello
但若父類別的方法改為protected
就會報錯。
參考:
沒有留言:
張貼留言