Java多型細節與instanceof關鍵字

2021-07-10 23:33:32 字數 999 閱讀 8140

無繼承,無多型

多型作為oop三大特性之一,在現實生活中,表現為乙個物件可以有多種形態

oop語言中也就是乙個物件對應著不同型別,**的直接體現在於父類或者介面的引用指向其子類的物件

比如下面新增其他具體動物類,都可以實現eat()方法,父類引用型變數繫結通過不同的物件呼叫同名的不同方法

比如每個具體的func特有功能方法,那麼animal型別變數就無法訪問,必須向下轉換為子類物件

首先,對於物件轉型,都是子類物件向上轉換或父類父類物件向下轉換(實際上基本資料型別的型別轉換也可以看成物件型別轉換,比如integer其實就是int的型別)

向上轉換:是為了實現功能的擴充套件性

向下轉換:是為了使用子類的特有功能

沒有繼承關係的類之間的轉換會報錯

instenceof 用於判斷物件的具體型別,只能用於引用資料型別的判斷,確保源物件是否為目標物件的例項

一般用於健壯性的判斷:要使用子類特有功能須向下轉型,一般要先判斷物件型別

關於多型成員的特點請看另一篇:多型成員的特點

abstract

class

animal //也可以換成介面

class

catextends

animal

void catfunc()

}class

dogextends

animal

void dogfunc()

}class

cattle

extends

animal

void cattlefunc()

}class

polymorphism

public

static

void eatmethod(animal a )

}

c 多型細節

c 程式語言是一款應用廣泛,支援多種程式設計的計算機程式語言。我們今天就會為大家詳細介紹其中c 多型性的一些基本知識,以方便大家在學習過程中對此能夠有乙個充分的掌握。多型性可以簡單地概括為 乙個介面,多種方法 程式在執行時才決定呼叫的函式,它是物件導向程式設計領域的核心概念。多型 polymorph...

Java的繼承與多型

繼承 子類繼承父類中所有的屬性和方法,但是對於private的屬性和方法,由於這個是父類的隱私,所以子類雖然是繼承了,但是沒有可以訪問這些屬性和方法的引用,所以相當於沒有繼承到。很多時候,可以理解為沒有繼承。多型 就是父類引用可以持有子類物件。這時候只能呼叫父類中的方法,而子類中特有方法是無法訪問的...

Java多型與泛型

一 多型理解 1 判斷是否是同乙個函式,通過唯一性標識 方法名 引數 順序 數量 型別一致 2 過載 引數 與 父類 不同 重寫 覆蓋 方法名 引數 與 父類 相同 3 多型分為編譯時多型 過載 和執行時多型 重寫 覆蓋 因為過載是不同的方法,編譯器能編譯的時候就確定是否呼叫該方法 而對於重寫,只有...