c++中向上轉型和向下轉型,動態轉換,和靜態轉換詳解
子類轉換為父類:向上轉型,使用dynamic_cast<type_id>(expression),這種轉換相對來說比較安全不會有資料的丟失;
父類轉換為子類:向下轉型,可以使用強制轉換,這種轉換時不安全的,會導致資料的丟失,原因是父類的指標或者引用的記憶體中可能不包含子類的成員的記憶體。
動態轉換和靜態轉換,dynamic_cast<type_id>(expression),static_cast<type_id>(expression),表示的是將expression轉換為type_id型別資料,動態轉換一般是子類的指標或者引用轉換為父類的指標或者引用,靜態轉換常用用於數值資料型別的轉換。
參考一下連線:http://www.jb51.net/article/78145.htm
相關推薦
c++中向上轉型和向下轉型,動態轉換,和靜態轉換詳解
子類轉換為父類:向上轉型,使用dynamic_cast<type_id>(expression),這種轉換相對來說比較安全不會有資料的丟失; 父類轉換為子類:向下轉型,可以使用強制轉換,這
java語言機制中的多型多型理解以及多型的向上轉型和向下轉型問題
多型中轉型問題往往不容易理解,特別是向上和向下轉型。 下面先說說多型的概念和前提: 1.要有繼承關係; 2.要有方法重寫; 3.要有父類引用指向子類物件; 如果是成員變數的話,編譯看左邊(父類),執行看左邊(子類); 如果是成員方法的話,編譯看左邊(父類),執行看右邊(子類)
Java多型中的向上轉型和向下轉型
向上轉型:將一個父類的引用指向一個子類物件,稱為向上轉型,自動進行型別轉換 用法: Father f = new Son(); 向下轉型:子類引用指向父類引用的子類物件 通俗的說就是子類例項物件賦值給父類引用,然後父類引用又要賦值給子類引用,這個過程就是向下轉型
java中向上轉型(upcast)和向下轉型(downcast)
abstract class ClassAbstract1{}class ClassDerived1 extends ClassAbstract1{ public void play1() { System.out.println("play1() is in the ClassDerived1"); }}
面向物件中的多型,物件的向上轉型和向下轉型
多型 首先什麼是多型? 多型就是一種事物的多種形態. 建立多型的前提需要滿足三個條件: 1.首先類與類之間要建立聯絡,即需要有繼承關係 2.子類中一定要有方法的重寫 3.最重要的是一定要有父類的指標指向子類的物件或者說父類的引用指向子類的空間 下面
C#向上轉型和向下轉型
子類物件賦給父類型別的變數,稱為向上轉型。父類型別的物件賦給子類型別的變數,稱為向下轉型。上個例子,Vegetable是父類,Potato是子類。namespace ConsoleApplication1{ class Vegetable { public
JavaSE(五)JAVA對象向上轉型和向下轉型
open 其他 解釋 編譯 -- 運行出錯 instance xtend args 今天做了一個測試的題目,發現自己還是很多問題沒有靜下心來做。很多問題是可以自己解決的但是自己一是沒有讀清題意,二是自己心裏太急躁了。所以這個要自己應以為鑒! 對象的轉型問題其實並不復雜,我
JAVA向上轉型和向下轉型
子類 font new ont java向上轉型 clas 之間 string output 最近在看JAVA編程思想,之前學的JAVA只能算是皮毛,大概看到第七章繼承時出現了個名詞-向上轉型。所以就來討論下向上和向下轉型的內容和意義,內容會隨著我看書的進度一直更新的
JAVA的向上轉型 和 向下轉型
向上轉型 是面向物件繼承的一種形式,是指子類物件轉換為父類物件。 看下面的example class Instrument { public void play() { System.out.println("Instrument play"); }
java——向上轉型和向下轉型
Father f1 = new Son(); // 這就叫 upcasting (向上轉型) // 現在 f1 引用指向一個Son物件 Son s1 = (Son)f1; // 這就叫 downcasting (向下轉型) // 現在f1 還是指向 Son物件 Father f2 =
向上轉型和向下轉型
向上轉型:把子類物件轉成父類型別,即父類的引用指向子類物件。 A為父類,B為子類。 A b = new B(); 向上轉型時會執行子類重寫父類的方法,以及父類特有的方法。但是會丟失子類中特有的方法和資料。 向下轉型:把父類物件轉成子類型別,即將子類的引用指向父類
java學習-向上轉型和向下轉型
一,多型 在設計一個方法的時候,通常希望該方法具備一定的通用性。比如實現一個動物叫的方法,每個動物的叫聲是不一樣的,可以在方法中接收一個動物型別的引數,當傳入貓類物件的時候就發出喵的聲音,相對傳入狗的物件就發出汪的聲音。同一個方法這種應為引數不同而導致執行效果不同的現象叫做
多型之向上轉型和向下轉型
向上轉型: 將子類物件轉換為父類物件 : Father f = new Son(); 這樣產生的物件f,將會擁有父類的屬性和子類的方法。當然,子類的方法複寫了父類的方法,輸出的結果自然是父類的。而f的屬性卻依舊是父類時候的屬性值。舉個栗子
父子類的向上轉型和向下轉型
首先從一個例子看:class A { double f(double x, double y) { return x + y; } static in
物件型別的轉換(向上轉型和向下轉型)
1 //父類 2 class Parent 3 { 4 public static String kind="javastudy.extendsstudy.parent"; 5 public static int age=50; 6 pu
Java中的向上轉型與向下轉型
Java中的類的繼承關係中,有向上轉型與向下轉型兩種。 當父類的引用指向子類物件時,稱為向上轉型。比如Father是父類,Son是子類,則Father father=new Son()這種就是向上轉型;這個時候執行的是指向的子類物件的方法。如下 publi
關於Java繼承的 向上轉型和向下轉型
在Java中, 向上轉型(upcasting)和向下轉型(downcasting)的前提,必須是有“繼承關係”,向上轉型是自動的,向下轉型需要進行強轉。 例如: /**定義了一個“父”類*/ public class Father { /**姓名
java繼承向上轉型和向下轉型和動態繫結
1 概念: 把引用變數轉化為子類型別,則成為向下轉型。如果把引用變數轉化為父類型別,則成為向上轉型。 Java程式碼 publicclass Base { /** * 父類例項變數 */ String var = "baseVar"; /**
JAVA向上轉型和向下轉型(一)
在我們工作的時候通常會看到這樣的程式碼: Map<String,Object> m = new HashMap<String,Object>(); List<Object> l = new ArrayList<Object&
理解“向上轉型”和“向下轉型”的簡單例子
import static net.mindview.util.Print.*; class Useful{ public void f(){print("Useful:f()");} public void g(){print("Useful