[問題] private method在subclass內的表現
各位好:
最近在課本上看到一個範例,自己試著打了一下
對於最後的結果有些疑,po上來問請問一下大家
code:
public class Test {
public static void main(String[] args) {
new Person().printPerson(); // Person
new Student().printPerson(); // Person
}
}
class Student extends Person {
private String getInfo() {
return "Student";
}
}
class Person {
private String getInfo() {
return "Person";
}
public void printPerson() {
System.out.println(getInfo());
}
}
result:
Person
Person
問題:
簡單來說,Student繼承Person,由於printPerson()是public
所以class Student內有繼承到printPerson()
但是getInfo()在Person內是private,所以class Student內沒有繼承到getInfo()
於是class Student內自行定義了一個自己的getInfo()
然後呼叫new Student().printPerson()
printPerson()內會去呼叫getInfo()函數
請問為什麼呼叫的getInfo()函數
不是class Student內自行定義的getInfo()
而是其superclass Person內的getInfo()呢?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.228.159
※ 文章網址: http://www.ptt.cc/bbs/java/M.1409634083.A.29A.html
→
09/02 13:03, , 1F
09/02 13:03, 1F
嗯嗯這我知道,但是我還是不了解
為什麼new Student().printPerson(),printPerson()會去呼叫getInfo()
為什麼不會呼叫Studnet自己定義的getInfo()
而會去呼叫到superclass Person內的getInfo()
※ 編輯: minGW128 (220.136.228.159), 09/02/2014 13:06:58
→
09/02 14:17, , 2F
09/02 14:17, 2F
→
09/02 16:11, , 3F
09/02 16:11, 3F
→
09/02 16:12, , 4F
09/02 16:12, 4F
→
09/02 21:01, , 5F
09/02 21:01, 5F
java 近期熱門文章
PTT數位生活區 即時熱門文章