java造型
Ⅰ java向上造型的意義
那個你做的例子都有誤導性的,你用Person來試試,Person裡面有一個方法:eat(),你分別聲明三個類:man,woman,notmannotwoman來繼承這個類,並復寫裡面的方法,好了,現在我要在測試類裡面寫一個方法,只傳進一個參數,可以調用三個對象的復寫的eat(),你該怎麼辦? 現在,向上轉型就出來了,太他媽的聰明了,你myMethod(Person obj){ obj.eat()}, 你分別傳進三個對象:man,woman,notmannotwoan的,好了,你猜對了,調用的都是復寫之後的,各個類裡面的方法
Ⅱ java向上造型有什麼作用為什麼要造型,有什麼效果
向上造型:父類的引用指向子類的對象。
向上造型可以大大提高程序的可擴展性。利於代碼維護。
面向對象的三大特性:封裝;繼承;多態。向上造型可以看做多態的一種體現。即允許一種類型有不同的實現(可以理解為事物存在的多種體現形態)。
典型應用:介面。
沒有什麼效果,只是是代碼精簡而已
Ⅲ java對象造型問題
Dog d1=(Dog)a;
因為這一句的定義是把父類對象強制轉換為子類對象,又因為子類對象有name和furColor兩個屬性,所以可以去調用,而"bigyellow"已經被賦給了父類的name屬性,所以你再調用子類的name屬性時就沒有了,只能是null.
其實你程序里把子類都又重新定義一個name屬性是多餘的.
應該這樣寫.子類不要再定義name屬性,而是直接super(name),這樣的話,父類和子類都通用一個name屬性,就不會出現錯誤了.而更加符合繼承的思想.
Ⅳ java向上造型強制轉換的好處
向上造型是指父類的引用指向子類對象。向上造型可以提高程序的擴展性,利於代碼維護
Ⅳ Java 什麼情況下,造型會發生異常如何避免造型出現異常
構造函數中的代碼出現未捕獲異常會發生。
如何避免:
1、 將構造函數中的異常捕獲並處理;
2、將構造函數中容易出現異常的代碼 剝離到初始化函數中,並在構造後調用。
Ⅵ 誰能給我講講JAVA中的強製造型啊最好以代碼形式講下,加下注釋,謝謝喔!
分為兩種:一種是基礎數據類型的強制轉型,另一種是引用類型的轉型。 基礎數據的轉型:表數范圍小的自動向表數范圍大的轉型,也叫做向上轉型。表數范圍大的向表數范圍小的轉型則需要強制類型轉換。例:1、java中的整數默認為int類型。但是我們可以這樣寫: double a = 10; //自動向上轉型, 列印結果:10.0 2、java中的小數默認為double類型。用int類型接收一個double類型的數據, 則需要強制類型轉換: int b = (int)10.9; //強制轉型,必須顯示聲明轉型(也就是在10.9前面加(int)), //列印結果10 //注意:這里不是四捨五入,而是去掉了所有的小數部分。 另一種強制轉型的方式: float c = 10.9f //這是轉型的另一種方式。 3、字元串與int,float,double等轉型,這主要依靠三種基礎數據類型的封裝類 的parseXxx()方法來實現(parseInt(),parseFloat(),parseDouble()等), 而整形和浮點型向字元串轉型 則依靠String類的valueOf()方法。 int d = Integer.parseInt("100"); //將字元串轉成int類型數據, //注意:字元串的內容必須全為數字,不然會出現類型轉換異常。 引用數據類型轉型和基礎數據類型轉型類似,也是自動向上轉型。Object為java的基類,它可以接收任意類型。例: 有一個Person類: public class Person { ....... } 可以用Object接收Person類的對象: Object obj = new Person(); //自動向上轉型 引用類型的向下轉型則需要先建立父類與子類之間的關系: class Person { //父類
......
} class Student extends Person { //子類
.......
} 上面的是一個繼承的關系,如果要讓父類的Person對象可以轉型為子類的Student對象, 則首先要建立一個向上轉型的關聯,即: Person p = new Student(); //首先向上轉型建立關聯(必須,否則不能向下轉型) Student s = (Student)p; //強制轉型到Student對象 父類引用指向子類的對象是多態的表現手段,介面和實現類之間也是這樣。 希望對你有所幫助。
Ⅶ java中造型的問題
這個是多態的一個應用,將父類的引用指向子類的對象。語法應該是定義一個父類的引用pen,然後創建一個子類rubberpencil的對象,然後將父類的引用pen指向新創建的子類對象。
Ⅷ java中上溯造型是什麼原理
Upcasting,上溯造型,有的書譯作「向上轉型」,是實現Java多態(Polymorphism) 的基石。
Casting指的是對象之間類型的轉換。將一個對象的引用(Object
Reference)看作其父類對象的引用(Reference to base
type)叫做Upcasting(上溯造型或向上轉型)。反之,將對象的引用看作其子類的引用叫Downcasting。
Upcating系統會自動替你去做,而Downcasting則需要強制類型轉換。
Ⅸ Java中 向上造型是什麼概念是向上轉型么 什麼情況下用
class A {}
class B {} extend A
B b1 = new B();
A a1 = new B();
b1 = a1;
這被稱作向上造型。
Ⅹ java 對象造型的意義 java
模塊與重用
以你的例子來說吧。你那例子是課本用來告訴我們怎麼用父類引用子類對象的,所以根本沒有意義,於是你自然會問「為什麼不直接使用B b1=new B();?」這樣的問題了。
要知道把子類的引用給父類有什麼意義,這要在夠大型的架構裡面才能體現的。比如說Java的awt、swing等GUI的框架裡面,你隨處可以看到繼承重用。
就好像說,一個按鈕和一個文本框,這兩個都是可以顯示出來的圖形組件;而你要把這兩個組件添加到某某窗口frame。那麼在這個窗口frame應該有一個方法是可以添加圖形組件的,而這個方法必須帶有一個參數,這個參數表示要添加的組件,如果讓你來設計,你覺得這個參數的類型是什麼?顯然,這個參數的類型應該表示所有可以被繪制的圖形組件(如果只表示按鈕或文本框的話,那麼以後你新設計了一個單選框,那不是要把frame的代碼改動了)。實際上它的這個添加方法是這么被定義的:add(Component comp)。這里的Component是你要添加的按鈕或文本框的頂級父類了。