java學習日記_40:多型的記憶體圖示以及常見錯誤
記憶體使用圖1:
記憶體使用圖2:
————————————————
/*
ClassCastException:型別轉換異常一般在多型的向下轉型中容易出現
*/
class Animal {
public void eat(){}
}
class Dog extends Animal {
public void eat() {}
public void lookDoor() {
}
}
class Cat extends Animal {
public void eat() {
}
public void playGame() {
}
}
class DuoTaiDemo5 {
public static void main(String[] args) {
//記憶體中的是狗
Animal a = new Dog();
Dog d = (Dog)a;
//記憶體中是貓
a = new Cat();
Cat c = (Cat)a;
//記憶體中是貓
Dog dd = (Dog)a; //ClassCastException
}
}
相關推薦
java學習日記_40:多型的記憶體圖示以及常見錯誤
記憶體使用圖1: 記憶體使用圖2: ———————————————— /* ClassCastException:型別轉換異常一般在多型的向下轉型中容易出現 */ class Animal {public void eat(){} } class Dog ex
Java學習日常(多型、包裝類、final修飾符、抽象類)
學習內容 多型中的instanceof運算子 public class Client1 { public static void main(String[] args) { Animal tom = new Dog(); Anim
JAVA學習——基礎部分——多型與介面
一、多型的定義。 自我理解來說,多型應該是從繼承上發展,為了程式碼的簡潔,用父類的物件呼叫子類的屬性。 像設計思維——工廠和介面感覺都是依賴於此。 二、多型的宣告 父類名 物件名 = new 子類(引數); 愉快地開始呼叫吧。 三步走:繼承關係:子類
java學習筆記----測試多型的用法
java學習筆記(高琪版) 面向物件OOP 測試多型的用法 多型,是指程式最終狀態是在程式執行時才被確定 首先一個類需要被多個類所繼承 這多個類相較於父類都有一定的改寫才有意義(方法的重寫) 新建物件時父類引用指向子類的物件 帶入方法的物件必須是父
Java學習筆記——String類型轉換
世界 java學習筆記 getc [] bool bsp ati nbsp ole 一滴水裏觀滄海,一粒沙中看世界 ——一帶一路歡迎宴致辭 上代碼: 1 package cn.stringtoobj; 2 3 public
Java學習筆記--double類型數據精度
java學習 double 在一次面試中被問到,有兩個double類型的數相減,會出現精度丟失,應該怎麽辦,有什麽解決方法。今天特地去搜了下,解決方法就是用BigDecimal類對數據進行處理。 了解詳細參考:http://blog.csdn.net/u011328015/article
JAVA學習日記DAY1
java學習日記基礎概念硬件:hardware軟件:software (microsoft)操作系統: OS,operating system 裸機,類unix系統(linux<紅旗,Redhat,..>,aix,xenix...),microsoft windows,Mac OS, offi
java學習日記(1-7)
har span 編譯失敗 數組長度 int() 冒泡排序 string length 類型 java 中標識符可以為$符, 默認是int類型超出int型必須標明是long型char 為 2字節String 是引用類型 byte b = 1;b = b + 1; #會報錯
java學習日記第一天
string類型 java學習 程序 類型變量 .cn {} 網上 oat ... java 學習日記 第一天 java學習準備工作 首先環境配置:一個是jdk安裝,另一個編譯工具 eclipse ,安裝下載教程網上很多 找了一個照著做就行 ; 上述步驟完成,我們就可以打
java學習日記(day30--dbutils)
類對象 類的方法 span spl user .sql rop ice 代碼 01DButils工具類的介紹個三個核心類 * A: DButils工具類的介紹個三個核心類 * a: 概述 * DBUtils封裝了對JDBC的操作,簡化了JDBC
java學習日記 集合框架
調用構造 mar bsp 順序 ole 鍵值對 oar 一樣在 es2017 集合框架 有兩大接口 一個是 Collection (類集 )與Map (映射); collection 下有兩大接口 一個是List (列表) 另一個是Set(集合) List (列表):
Net學習日記_泛型與反射
圖片 父類 兩個 實現 類型 類型參數 簽名 blog 學習 真正的重載:兩個帶不同個數的類型參數的泛型方法構成重載(overload) 泛型方法的類型參數和方法參數列表都是構成重載的元素。 子類重寫父類方法的是方法體實現代碼,而不
Java學習日記------面向對象①
pan customer 方法 ins gui clas pack 存在 理解 1 package com.atguigu.java; 2 /* 3 理解1:人開門 4 面向過程:人 打開 門 5 面向對象: 6 人{ 7 打開(門){ 8
Java學習日記------面向對象②
com 數據類型 amp pro void OS alt 法則 作用 2018-03-01 1.創建Java類並實例化 package day02; /* * 面向對象思想的落地法則一: * 1.設計類,並設計類的成員(成員變量和·成員方法) * 2.通過類,來創造
Java學習日記------面向對象③
排序 pla esc 存在 min util ring ble person Java類的設計和使用練習 package day3; public class TestPerson1 { public static void main(String[] args
Java學習日記------面向對象④
你好 color ava 數據類型 可變 引用 system for 面向對象 一、體會可變個數的形參 1.格式:對於方法的形參 數據類型 ...形參名 2.可變形參的方法與同名的方法構成重載 3.可變個數的形參在調用時個數從0開始到無窮多個都可以。 4.使用可變個數的形參
java學習日記—————Map接口
分享圖片 bubuko 操作 刪除 tro .com boolean () 方法 Map與Collection並列存在。用於保存具有映射關系的數據:Key-ValueMap 中的 key 和 value 都可以是任何引用類型的數據Map 中的 key 用Set來存放,不允
Java學習日記-----IO流
抽象基類 基類 found 字符串 exit eno 轉換流 otf 節點流 1.java.io包下 File類:java程序中的此類的一個對象,就對應著一個文件或網絡中的一個資源。 Flie file1 = new File("D:\\io\\hello.txt
Java學習日記-----IO流 練習
fin OS IT 通用 文件 reader 安全 work 專業 分別使用字節流和字符流完成以下程序: 1. 在指定的路徑下新建一個 .txt 文件 "test.txt",利用程序在文件中寫入如下內容: "Java是一種可以撰寫跨平臺應用軟件的面向對象的程序設計語言,是
Java學習日記基礎篇(六)—— 抽象類、接口、final
技術 註意事項 sys png put system 全局變量 它的 camera 抽象類 為什麽要有抽象類? 因為父類方法有不確定性,我們在Animal中定義了一個方法,但是它會被子類的方法覆蓋掉,我們就不知道這個方法原本是做什麽的 1 public class