向下轉型的注意事項與instanceof的使用
向下轉型的注意事項:
在物件向下轉型中,父類例項是不可能強制轉換成任意子類例項,必須先通過子類例項化,利用向上轉型讓父類物件與具體子類例項發生聯絡後才可以向下轉型,否則將出現ClassCastException異常。
instanceof 的使用:
instanceof 的左邊是物件,右邊是類;當物件是右邊類或子類所建立物件時,返回true;否則,返回false。
用instanceof時需注意向下轉型的注意事項,否則即使時父子類關係仍會返回false
如下所測:
class Person{
public void show(){
System.out.println("1111111111");
}
}
class Student extends Person {
@Override
public void show() {
System.out.println("2222");
}
}
class Test{
public static void main(String[] args) {
Person per = new Person();
Student st = new Student();
Per p=new St();
St s=(St)p;
s.show();
System.out.println( st instanceof Per);//true
System.out.println( s instanceof Per);//true
System.out.println( p instanceof St);//true
//如下per物件是Student類的父類所創,但仍然返回false
System.out.println( per instanceof St);//false
}
}
相關文章
- 深入瞭解typeof與instanceof的使用場景及注意事項
- Oracle使用*的注意事項Oracle
- HTML基本標籤的使用與注意事項HTML
- 使用ProForm的useRef()物件的注意事項ORM物件
- 說點JSON使用的注意事項JSON
- 使用MyBatis的注意事項有哪些MyBatis
- 使用Vue.js的注意事項Vue.js
- 使用HTTP的三個注意事項HTTP
- ip代理軟體的使用注意事項
- Python Enum 使用的幾點注意事項Python
- cookie的使用方法以及注意事項Cookie
- OA系統在選型時的注意事項
- 營銷型網站建設的注意事項網站
- Oracle vs PostgreSQL,研發注意事項(7)- 型別轉換OracleSQL型別
- 向上轉型和向下轉型
- 使用Google Fonts注意事項Go
- mongoDB安裝與啟動的注意事項MongoDB
- WebView與JS的互動,以及注意事項WebViewJS
- MyBatis 的在使用上的注意事項及其辨析MyBatis
- 多型,向上向下轉型多型
- TDengine|taosdump 的使用方法和注意事項
- TDengine | taosdump 的使用方法和注意事項
- uni-app 使用Weex/nvue的注意事項APPVue
- 換工作的注意事項
- 小遊戲引擎選型注意事項遊戲引擎
- 【翻譯】Vue.js 的注意事項與技巧Vue.js
- 機械硬碟,使用注意事項硬碟
- Guava HashMultimap使用及注意事項Guava
- 萬兆網路卡使用注意事項
- MySQL半同步使用注意事項MySql
- TCP使用注意事項總結TCP
- C中memcpy使用注意事項memcpy
- uni-app 使用HTML5+的注意事項APPHTML
- spring-data-jpa使用快取的注意事項Spring快取
- SQL 語句的注意事項SQL
- C++ queue的注意事項C++
- Micro/Mamba 安裝與注意事項
- JavaScript 設定CSS與注意事項JavaScriptCSS