多態問題總結

class Person{
String name = "person";
public void shout(){
System.out.println(name);
}
}
class Student extends Person{
String name = "student"; /* 與父類同名的子類的成員屬性不能父類的引用變量來訪問
得到的還是父類的成員屬性,其不夠成覆蓋 */
String school = "school";
}
class Test {
public static void main(String[] args){
Person p = new Student();
System.out.println(p instanceof Student); //ture
System.out.println(p instanceof Person); //ture
System.out.println(p instanceof Object); //ture
//System.out.println(p instanceof System); //不可轉換的類型
System.out.println(p.name); // 輸出person
//System.out.println(p.school); //error 通過父類的引用變量無法調用子類特有屬性與方法
Student s = (Student)p; //向下強制轉換,將父類所指向的真實子類類型還原到s
System.out.println(s.name);
System.out.println(s.school);

}
}

輸出結果:
true
true
true
person
student
school
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章