2012-04-16 08:00:19Morris
[JAVA] 學習 static and nonstatic method 的繼承
class SuperClass {
public static void staticMethod() {
System.out.println("Superclass's static method");
}
public void instanceMethod() {
System.out.println("Superclass's instance method");
}
}
public class Test extends SuperClass {
public static void staticMethod() {
System.out.println("Subclass's static method");
}
public void instanceMethod() {
System.out.println("Subclass's instance method");
}
public static void main(String[] args) {
SuperClass obj = new Test();
obj.staticMethod();
((Test)obj).staticMethod();
obj.instanceMethod();
((Test)obj).instanceMethod();
}
}
結果:
Superclass's static method
Subclass's static method
Subclass's instance method
Subclass's instance method
被overriden的method沒有辦法再被呼叫, 除非透過override它的method, 使用super去呼叫
父別類與子類別有同名的static method....應該是稱做"hide"吧? (不知道有沒有記錯)
這種hide的情況, 透過casting就可以呼叫到不同的static method了
而override就沒辦法囉~
學習來源 :
http://www.javaworld.com.tw/jute/post/view?bid=29&id=13488&tpg=1&ppg=1&sty=1&age=0