Java中instanceof的用法

2021-08-14 10:50:44 字數 888 閱讀 9302

instanceof 運算子作用

instanceof 用法

boolean result = object instanceof class
引數:
result:布林型別。

object:任意物件表示式。

class:任意已定義的物件類。

如果 object 是 class 的乙個例項,則返回 true。如果 object 不是指定類的乙個例項,或者 object 是 null,則返回 false。

instanceof 測試

class person 

class student extends person

class postgraduate extends student

class animal

public

class

instanceoftester

public

static

void

instanceoftest(final person p) else

if (p instanceof student) else

if (p instanceof person) else

if (p instanceof object)

// if(p instanceof animal)

// }

}}

這個程式的輸出結果是:p是類student的例項

person類所在的繼承樹是:object<–person<–student<–postgraduate。

這個例子中還加入乙個animal類,它不是在person類的繼承樹中,所以不能作為instanceof的右運算元。

java中的instanceof用法

乙個類的物件可以轉換成繼承鏈中的另乙個類的物件。在進行物件轉換時必須注意 1 乙個子類物件的型別可以向上轉換,即乙個子類可以轉換成它的父類。這種轉換是安全的,因為子類中含有父類的資訊,子類是父類的乙個超集。轉換的結果是丟失子類中新定義的資訊。2 乙個父類物件的型別一般來說是不可以向下轉換成它的子類,...

Java中介面 多型 instanceof

一 介面 1,概述 介面是特殊的抽象類,所有的屬性都是公開靜態常量 全域性常量 所有的方法都是公開抽象方法而且沒有構造方法。2,思想 特點 介面是對外暴露的規則 介面是程式的功能擴充套件 介面的出現降低耦合性 介面可以用來多實現 類與介面之間是實現關係,而且類可以繼承乙個類的同時實現多個介面。介面與...

java中的instanceof判斷

有的朋友遇到if判斷中的instanceof不知道什麼意思 eg 問題 public class shout class student extends shout class sample 答案 a instanceof b a是乙個物件 使用new例項的物件 b是乙個類 不是方法名 他表示a這個...