」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 超類別引用和子類別對象

超類別引用和子類別對象

發佈於2024-11-08
瀏覽:367
  • Java 是一種強型別語言。

  • 標準轉換和自動升級適用於原始型別。

  • 嚴格執行型別相容性。

  • 通常,一個類別的引用變數不能引用另一個類別的物件。

Referências da superclasse e objetos da subclasse

  • 即使類別 X 和 Y 在結構上相同,也不可能將 X 的引用分配給 Y 的對象,因為類型不同。

  • 一般來說,物件引用變數只能引用其類型的物件。

  • 型別強加的例外是超類別的引用變數可以引用從該超類別派生的任何子類別的物件。

Referências da superclasse e objetos da subclasse

  • 由於 Y 源自 X,因此允許 x2 接收 Y 物件的引用。

  • 引用變數的類型,而不是它引用的物件的類型,決定了可以存取的成員。

  • 當子類別物件的引用被賦值給超類別變數時,只能存取超類別定義的成員。

  • 在範例中,x2 無法存取 Y 的成員 b,因為類別 X 不知道子類別新增的成員。

  • 分配給超類別變數的子類別參考很常見,尤其是在類別層次結構中呼叫建構子時。

  • 子類別可以受益於將超類別中的物件作為參數的建構函數,從而允許創建物件的副本。

Referências da superclasse e objetos da subclasse

Referências da superclasse e objetos da subclasse

Referências da superclasse e objetos da subclasse

  • 在此程序中,t2 由 t1 構造而成,因此是相同的。

  • 此三角形產生器的注意事項:
    // 從另一個物件建構一個物件。
    三角形(三角形ob) {
    超級(ob); // 將物件傳遞給 TwoDShape
    的建構子 樣式 = ob.style;
    }

  • 它接收一個 Triangle 類型的物件並將其(透過 super)傳遞給此 TwoDShape 建構子:
    //從另一個物件建構一個物件。
    TwoDShape(TwoDShape ob) {
    寬度 = ob.width;
    高度 = ob.height;
    }

  • TwoDShape() 建構子期望接收 TwoDShape 類型的物件。

  • Triangle() 子類別的建構子向其傳遞一個 Triangle 類型的物件。

  • 這是有效的,因為來自超類別(如 TwoDShape)的引用可以引用來自子類別(如 Triangle)的物件。

  • 將衍生類別的物件的參考傳遞給超類別的建構子是可以接受的。

  • 超類別建構子 TwoDShape() 僅初始化屬於 TwoDShape 類別的成員,不考慮 Triangle 子類別的其他成員。

版本聲明 本文轉載於:https://dev.to/devsjavagirls/referencias-da-superclasse-e-objetos-da-subclasse-2d45?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • Python 變數:命名規則和型別推斷解釋
    Python 變數:命名規則和型別推斷解釋
    Python 是一種廣泛使用的程式語言,以其簡單性和可讀性而聞名。了解變數的工作原理是編寫高效 Python 程式碼的基礎。在本文中,我們將介紹Python變數命名規則和類型推斷,確保您可以編寫乾淨、無錯誤的程式碼。 Python變數命名規則 在Python中命名變數時,必須遵循一...
    程式設計 發佈於2024-11-08
  • 如何同時有效率地將多個欄位新增至 Pandas DataFrame ?
    如何同時有效率地將多個欄位新增至 Pandas DataFrame ?
    同時向Pandas DataFrame 添加多個列在Pandas 資料操作中,有效地向DataFrame 添加多個新列可能是一項需要優雅解決方案的任務。雖然使用帶有等號的列列表語法的直覺方法可能看起來很簡單,但它可能會導致意外的結果。 挑戰如提供的範例所示,以下語法無法如預期建立新欄位:df[['c...
    程式設計 發佈於2024-11-08
  • 從開發人員到資深架構師:技術專長與奉獻精神的成功故事
    從開發人員到資深架構師:技術專長與奉獻精神的成功故事
    一個開發人員晉升為高級架構師的真實故事 一位熟練的Java EE開發人員,只有4年的經驗,加入了一家跨國IT公司,並晉升為高級架構師。憑藉著多樣化的技能和 Oracle 認證的 Java EE 企業架構師,該開發人員已經證明了他在架構領域的勇氣。 加入公司後,開發人員被分配到一個項目,該公司在為汽...
    程式設計 發佈於2024-11-08
  • 如何在 PHP 8.1 中有條件地將元素新增至關聯數組?
    如何在 PHP 8.1 中有條件地將元素新增至關聯數組?
    條件數組元素添加在 PHP 中,有條件地將元素添加到關聯數組的任務可能是一個挑戰。例如,考慮以下數組:$arr = ['a' => 'abc'];我們如何有條件地添加'b' => 'xyz'使用array() 語句對此陣列進行運算?在這種情況下,三元運算子不是一...
    程式設計 發佈於2024-11-08
  • 從打字機到像素:CMYK、RGB 和建立色彩視覺化工具的旅程
    從打字機到像素:CMYK、RGB 和建立色彩視覺化工具的旅程
    當我還是個孩子的時候,我出版了一本關於漫畫的粉絲雜誌。那是在我擁有計算機之前很久——它是用打字機、紙和剪刀創建的! 粉絲雜誌最初是黑白的,在我的學校複印的。隨著時間的推移,隨著它取得了更大的成功,我能夠負擔得起帶有彩色封面的膠印! 然而,管理這些顏色非常具有挑戰性。每個封面必須列印四次,每種顏色...
    程式設計 發佈於2024-11-08
  • 如何將 Boehm 的垃圾收集器與 C++ 標準函式庫整合?
    如何將 Boehm 的垃圾收集器與 C++ 標準函式庫整合?
    整合 Boehm 垃圾收集器和 C 標準庫要將 Boehm 保守垃圾收集器與 C標準庫集合無縫集成,有兩種主要方法:重新定義運算符::new此方法涉及重新定義運算符::new以使用Boehm的GC。但是,它可能與現有 C 程式碼衝突,並且可能無法在不同編譯器之間移植。 明確分配器參數您可以使用而不是...
    程式設計 發佈於2024-11-08
  • 如何優化子集驗證以獲得頂級效能?
    如何優化子集驗證以獲得頂級效能?
    優化子集驗證:確保每一位都很重要確定一個清單是否是另一個清單的子集的任務在程式設計中常遇到。雖然交叉列表和比較相等性是一種簡單的方法,但考慮效能至關重要,尤其是對於大型資料集。 考慮到這種情況,需要考慮的一個關鍵因素是任何清單在多個測試中是否保持不變。由於您的場景中的其中一個清單是靜態的,因此我們可...
    程式設計 發佈於2024-11-08
  • 如何處理超出 MySQL BIGINT 限制的大整數?
    如何處理超出 MySQL BIGINT 限制的大整數?
    超出MySQL BIGINT 限制的大整數處理超出MySQL BIGINT 限制的大整數處理MySQL 的BIGINT 資料型別可能看起來是最廣泛的整數表示形式,但在處理時會出現限制超過20 位的數字。 超出BIGINT 的選項邊界當儲存需求超出BIGINT的能力時,會出現兩個選項:儲存為VARCH...
    程式設計 發佈於2024-11-08
  • 如何確保 Python Selenium 中載入多個元素?
    如何確保 Python Selenium 中載入多個元素?
    Python Selenium:確保多個元素載入透過AJAX 處理動態載入的元素時,確認其外觀可能具有挑戰性。為了處理這種情況,我們將利用 Selenium 的 WebDriverWait 及其各種策略來確保多個元素的存在。 所有元素的可見性:驗證所有與特定選擇器匹配的元素,我們可以使用visibi...
    程式設計 發佈於2024-11-08
  • 了解 JavaScript 中的標記模板文字
    了解 JavaScript 中的標記模板文字
    什麼是標記模板文字? 帶有標籤的模板文字涉及以函數為前綴的模板文字,稱為標籤。此函數可以處理和操作文字的內容。這是一個簡單的例子: function tag(strings, ...values) { console.log(strings); console.lo...
    程式設計 發佈於2024-11-08
  • 二指針演算法解釋
    二指針演算法解釋
    我想解釋一個簡單有效的技巧,你可以在面試中處理數組、字串、鍊錶等時使用它。這也將提高你對這些數據的基礎知識結構。 讓我們從理論開始。該演算法有兩個常見用例: left/right 這個演算法的中心概念是有兩個整數變量,它們將從字串或數組的兩側移動。通常,人們稱之為左和右。左邊將從0索引移動到長度-...
    程式設計 發佈於2024-11-08
  • 如何消除Python列印語句中的空格?
    如何消除Python列印語句中的空格?
    在 Python 列印語句中刪除空格在 Python 中,列印多個項目通常會導致出現意外的空格。可以使用 sep 參數消除這些空格來解決此問題。例如,考慮這個:print("a", "b", "c")此輸出將包含空格:a b c要消除它們:...
    程式設計 發佈於2024-11-08
  • 具有樣式和變體的 Flexbox 按鈕
    具有樣式和變體的 Flexbox 按鈕
    该按钮使用 CSS Flexbox 进行样式化,包括主要、次要和第三级样式,所有这些样式都在嵌套 CSS 中构建,以提高清晰度和可维护性,其变化形式如下: 带文字 带有文字和图标(左/右/左&右) 只有图标 状态 全角 残疾人类型 HTML代码: <a href="#" class="sf-b...
    程式設計 發佈於2024-11-08
  • 如何使用 PHP 在 Windows 電腦上安裝 SSH2 擴充功能?
    如何使用 PHP 在 Windows 電腦上安裝 SSH2 擴充功能?
    在 Windows 電腦上使用 PHP 安裝 SSH2 擴充在使用 Apache 的 Windows 電腦上安裝 SSH2 擴充功能需要 OpenSSL 和 libssh2 函式庫。這是逐步指南:1。取得 PHP SSH2 PECL 擴充:從此處下載 Win32 SSH2 PECL 擴展,確保選擇與...
    程式設計 發佈於2024-11-08
  • 如何在 Python 中有效捕捉程式輸出:超越基本解決方案
    如何在 Python 中有效捕捉程式輸出:超越基本解決方案
    捕獲程式輸出:超越樸素的解決方案捕獲程式輸出:超越樸素的解決方案# writer.py import sys def write(): sys.stdout.write("foobar")在Python腳本中,捕獲程式輸出以進行進一步處理是一種常見的需求。雖然幼稚的解決方...
    程式設計 發佈於2024-11-08

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3