java基礎:型別轉換cast
一:例子
public class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Dog extends Animal{
private String furColor;
public Dog(String name,String furColor) {
super(name);
this.furColor = furColor;
}
public String getFurColor() {
return furColor;
}
public void setFurColor(String furColor) {
this.furColor = furColor;
}
}
public class Test {
public static void main(String[] args) {
//Dog d = new Dog("Hachi1","gray");
//System.out.println(d instanceof Animal);
Animal a = new Dog("Hachi","yellow");
System.out.println(a.getName());
//System.out.println(a2.getFurColor()); error
System.out.println(a instanceof Dog);
Dog d = (Dog) a;
System.out.println(d.getFurColor());
}
}
輸出結果:
Hachi
true
yellow
二:分析
Animal a = new Dog("Hachi","yellow");
棧空間中建立引用a,指向堆中new出來的子物件Dog("Hachi","yellow");
a的實質就是一隻Dog,a instanceof Dog返回True
但是a只能訪問到Animal的屬性。不能訪問Dog的furColor屬性
只有Dog d = (Dog) a;
另外建立一個引用d,將a強轉成Dog型別,就能訪問Dog的所有屬性了。
相關文章
- 型別轉換(cast)型別AST
- Golang 型別轉換庫 castGolang型別AST
- [Java基礎]之 資料型別轉換Java資料型別
- java 基礎型別與byte[]的轉換Java型別
- JAVA基礎:Java變數型別間的相互轉換(轉)Java變數型別
- PostgreSQL自定義自動型別轉換(CAST)SQL型別AST
- Golang:cast安全且易用的型別轉換工具GolangAST型別
- c++ static_cast顯式型別轉換C++AST型別
- Javascript基礎:變數型別轉換JavaScript變數型別
- JAVA int 強制型別轉換錯誤提示(Cannot cast from Object to int)Java型別ASTObject
- C++ 型別轉換詳解 -- const_castC++型別AST
- C++強制型別轉換:static_cast、dynamic_cast、const_cast、reinterpret_castC++型別AST
- [基礎] JavaScript 型別轉換及面試題JavaScript型別面試題
- java型別轉換與強制型別轉換(轉)Java型別
- [java]基礎型別Java型別
- Javascript基礎之-強制型別轉換(三)JavaScript型別
- Javascript基礎之-強制型別轉換(一)JavaScript型別
- javascript基礎(基本資料型別轉換)(六)JavaScript資料型別
- java- 型別-轉換:基本型別以及包裝型別的轉換Java型別
- Java資料型別及型別轉換Java資料型別
- Java基礎知識-基本資料型別相互轉型Java資料型別
- C++中型別轉換static_castC++型別AST
- 【Java】資料型別轉換Java資料型別
- java中的型別轉換Java型別
- 2.3、mybatis原始碼分析-基礎模組之型別轉換MyBatis原始碼型別
- Python基礎之集合和資料型別轉換Python資料型別
- java資料型別基礎Java資料型別
- Java基礎-基本型別和包裝型別Java型別
- 基礎-JAVA集合型別主要區別Java型別
- 2、java資料型別轉換Java資料型別
- JAVA型別轉換怎麼變Java型別
- [.net 物件導向程式設計基礎] (4) 基礎中的基礎——資料型別轉換物件程式設計資料型別
- PHP 型別轉換&&型別強制轉換PHP型別
- java的8種基礎型別Java型別
- [java基礎]之資料型別Java資料型別
- java基礎(十一) 列舉型別Java型別
- java基礎(十) 陣列型別Java陣列型別
- 型別轉換型別