Java基礎之(九) 物件的轉型

2021-07-15 07:20:09 字數 1192 閱讀 9836

定義:將子類的物件賦值給父類的引用。用法如下:

student s =new student();

person p = s;

或者:

person p =new student();
因為在繼承樹的畫法中,父類是放置在上方的。

先看下面程式:

class

person

}

class

student

extends

person

void introduce()

}

class test

}

輸出結果:

error:找不到符號

符號 :變數address

位置 :型別為person的變數p

p.address = "北京"

;

錯誤的原因是因為:

class test

}

編譯執行

輸出結果:

我的姓名是:張三,我的年齡是20

我的家在null

從結果來看,我們發現p呼叫的introduce()方法是子類的introduce()方法。原因是:

在向上轉型中,當把乙個子類物件直接賦值給乙個父類的引用時,例如上面的person p = new student(); 這個p引用變數的編譯時型別是person,而執行時型別是student,當執行時呼叫該引用變數的方法時,其方法行為總是表現出子類方法的行為特徵,而不是父類方法的行為特徵,這就可能出現:相同型別的變數、呼叫同乙個方法時呈現出不同的行為特徵,這就是多型。

關於多型,以後會有更詳細的介紹。

定義:將父類的物件賦值給子類的引用。用法如下:

student s1 =new student();

person p = s1;

student s2 = (student)p;

或者

person p =new student();

student s = (student)p;

7 物件的轉型

1 物件的向上轉型 將子類的物件賦值給父類的引用。student s new student 如學生張三 person p s 張三這個人 注意 1 乙個引用能夠呼叫哪些成員 變數和方法 取決於這個引用p裡定義了什麼成員。2 對於,子類重寫父類的方法,引用呼叫的是哪乙個方法,取決於這個引用所指向的物...

java基礎類庫(九) 3 物件轉殖

知識點 1.清楚物件轉殖的操作結構 2.鞏固介面的作用 具體內容 物件轉殖就是乙個物件複製操作,再object類裡面專門提供有乙個專門的轉殖方法 物件轉殖 protected object clone throws clonenotsupportedexception 注 protected本包和不...

java基礎之物件的向上轉型

物件的向上轉型 什麼是向上轉型 將子類的物件賦值給父類的引用。1 乙個引用可以呼叫哪些變數 變數和函式 取決於這個引用的型別中變數的定義。p這個引用是person型別,person型別中定義了name和age屬性,已經introduce方法。p可以呼叫的變數只能是person類中已經定義的變數的型別...