面對物件的三大特性 三 多型

2022-06-19 19:45:12 字數 2094 閱讀 2293

動態編譯型別 - 同一方法可以根據傳送物件的不同而採用多種不同的行為方式。

乙個物件的實際型別是確定的,但可以指向物件的引用的型別有很多。

注意:多型是方法的多型,屬性沒有多型性

instanceof

乙個物件的實際型別是確定的

new student();

new person();

但是,可以指向的引用型別就不確定了

子類重寫了父類的方法,就執行子類的方法

多型是方法的多型,屬性無法多型

父類和子類,有聯絡,型別轉換異常! classcastexception!

存在條件: 有繼承關係,如有需要方法需要重寫,父類引用指向子類物件! father f1 = new son();

無法被重寫的方法(修飾符):

被這三個修飾符修飾的方法無法被重寫,所以也無法實現多型

如果沒有「重寫override」,不能重複方法/方法名

父類person

package oop.demo06;

public class person

}

子類student

package oop.demo06;

public class student extends person

//父類person沒有這個方法-eat,因此在測試裡,父類person無法呼叫此方法

public void eat()

}

package oop;

import oop.demo05.a;

import oop.demo05.b;

import oop.demo06.person;

import oop.demo06.student;

public static void main(string args)

}

instanceof (型別轉換)

通過instanceof可以判斷乙個物件是什麼型別

通過instanceof可以判斷兩個類之間是否存在父子關係

總結為公式:

system.out.println(x instanceof y); 編譯器能否通過取決於x與y是否有父子類關係

怎麼使用instanceof判斷類與類之間的關係:

package oop;

import oop.demo05.a;

import oop.demo05.b;

import oop.demo06.person;

import oop.demo06.student;

import oop.demo06.teacher;

public static void main(string args)

}

型別之間的轉換

基本型別轉換

「類」型之間的轉換

低轉高是慢慢長大,高轉低是返老還童,會失憶

//高                     低

person student = new student(); //子類student這個物件被new成父類person, 低轉高 ok

//但是此時,student無法使用"student"de方法go

//student[父類person]將這個物件轉換為student[子類student],我麼就可以使用"student"型別的方法了

student student1 = (student) student; //高轉低, person student -- student student1 強制轉換

((student) student).go(); //經過強制轉換就可以使用 更低一層-子類 的方法了

//子類轉換為父類,可能會丟失一些自己的方法

/*栗子:

object example = new student(); //低轉高

student example2 = (student) example; //

((student) example).go();

*/

面對物件三大特性

1.封裝 安全,在需要封裝的屬性或者函式前加雙下劃線,並提供讀 寫的介面 1.封裝是物件導向程式設計的一大特點 2.物件導向程式設計的第一步 將屬性和方法封裝到乙個抽象的類中 為什麼說是抽象的,因為類不能直接使用 3.外界使用類建立物件,然後讓物件呼叫方法 4.物件方法的細節都被封裝在類的內部 cl...

java面對物件三大特性

繼承 概念繼承通過extends關鍵字來實現,其中subclass稱為子類,superclass稱為父類,基類,或超類 作用 重用,復用 單繼承乙個類,只能繼承乙個父類 乙個類,可以有多個子類 不繼承構造方法不繼承 沒有訪問許可權的成員不繼承 靜態成員不繼承 多型多型指的是編譯器 申明變數是 和執行...

面對物件的三大特徵

封裝 將類的某些資訊隱藏到類的內部,不能直接訪問,只能通過該類提供的方法對它進行訪問和操作 get和set方法 形象的比喻就是我們的汽車是由產家生產的,我們只關心使用就可以,不需要關心這個功能是怎麼做的。繼承 子類繼承父類 父類是可以有多個子類的 可以使用父類的方法和屬性,便於功能拓展。關鍵字 ex...