freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

javaee基礎(chǔ)教程第4章類與對象的基本概念ppt-資料下載頁

2025-10-09 14:25本頁面
  

【正文】 class subClass extends superClass{ int x。 subClass( ){ super( )。 //調(diào)用父類的構(gòu)造方法 x = 5。 (in subClass : x = +x)。 } void doSomething( ){ ( )。 //調(diào)用子類的構(gòu)造方法 (in ( ))。 ( = ++ = +x)。 } } Java EE基礎(chǔ)教程 79 2021年 11月 10日星期三 public class Inheritance{ public static void main( String[] args){ subClass subC=new subClass( )。 ( )。 } } Java EE基礎(chǔ)教程 80 2021年 11月 10日星期三 ? ?在 java里面向上轉(zhuǎn)型通俗理解就是子類對象轉(zhuǎn)型成父類對象,向上轉(zhuǎn)型是自動進行的。例如: ?假設(shè), A 類是 B 類的父類,當(dāng)我們用子類創(chuàng)建一個對象,并把這個子類對象的引用放到父類的對象中時,比如: A a。 a=new B( )。 或 A a。 B b=new B( )。 a=b。 ?稱這個父類對象 a是子類對象 b的上轉(zhuǎn)型對象,上轉(zhuǎn)型對象的實體是子類負(fù)責(zé)創(chuàng)建的,但上轉(zhuǎn)型對象會失去原對象中新增的的一些屬性和方法。 Java EE基礎(chǔ)教程 81 2021年 11月 10日星期三 ?我們經(jīng)常說“老虎是哺乳動物”,“狗是哺乳動物”等。因為哺乳類是老虎類和狗類的父類,所以這樣說當(dāng)然正確。但從語法角度看,當(dāng)說老虎是哺乳動物時,老虎將失掉老虎獨有的屬性和功能。 Java EE基礎(chǔ)教程 82 2021年 11月 10日星期三 Java EE基礎(chǔ)教程 83 2021年 11月 10日星期三 ? 上轉(zhuǎn)型對象具有如下特點: ? 上轉(zhuǎn)型對象不能操作子類新增的成員變量,失掉了這部分屬性;也不 能使用子類新增的方法,失掉了一些功能。 ? 上轉(zhuǎn)型對象可以操作子類繼承的成員變量,也可以使用子類繼承的或 重寫的方法。 ? 如果子類重寫了父類的某個方法后,當(dāng)對象的上轉(zhuǎn)對象調(diào)用這個方法時一定是調(diào)用了這個重寫的方法,因為程序在運行時知道,這個上轉(zhuǎn) 對象的實體是子類創(chuàng)建的,只不過改變了一些功能而已。 ? 不要將父類創(chuàng)建的對象和子類對象的上轉(zhuǎn)對象混淆。 ? 可以將對象的上轉(zhuǎn)型對象再強制轉(zhuǎn)換到子類對象,這時,該子類對象又具備了子類所給的所有屬性和功能。 ? 不可以將父類創(chuàng)建的對象的引用賦值給子類聲明的對象,也就是不能 說“哺乳動物是老虎”。 Java EE基礎(chǔ)教程 84 2021年 11月 10日星期三 例 419 對象的上轉(zhuǎn)型對象舉例。示例中“類人猿”類對象originalPeople是 People1類對象 people的上轉(zhuǎn)型對象。 程序清單: ch04\ package ch04。 class 類人猿 { public 類人猿 (){ (類人猿 Created!)。 } void crySpeak(){ ( 我是類人猿。 )。 } } Java EE基礎(chǔ)教程 85 2021年 11月 10日星期三 class People1 extends 類人猿 { public People1(){ (People Created!)。 } void crySpeak(){ ( 我是 People。 )。 } } class BackwardObject{ public static void main(String[] args) { 類人猿 originalPeople=new 類人猿 ()。 People1 people=new People1()。 originalPeople=people。 ()。 ()。 } } Java EE基礎(chǔ)教程 86 2021年 11月 10日星期三 ? ?在 java語言中,多態(tài)性體現(xiàn)在兩個方面:由方法重載實現(xiàn)的靜態(tài)多態(tài)性(編譯時多態(tài))和方法重寫實現(xiàn)的動態(tài)多態(tài)性(運行時多態(tài))。 ? 1.編譯時多態(tài) ?在編譯階段,具體調(diào)用哪個被重載的方法,編譯器會根據(jù)參數(shù)的不同來靜態(tài)確定調(diào)用相應(yīng)的方法。 ? 2.運行時多態(tài) ?運行時多態(tài)性就是指父類的某個方法被其子類重寫時,可以各自產(chǎn)生自己的功能行為。運行時多態(tài)也稱動態(tài)綁定( dynamic binding)、后期綁定( late binding)或運行時綁定( runtime binding)。 Java EE基礎(chǔ)教程 87 2021年 11月 10日星期三 ?子類繼承了父類所有的屬性(私有的除外),對于重載或繼承的方法, Java運行時系統(tǒng)根據(jù)調(diào)用該方法的實例的類型來決定選擇哪個方法調(diào)用。對子類的一個實例,如果子類重載了父類的方法,則運行時系統(tǒng)調(diào)用子類的方法,如果子類繼承了父類的方法(未重載),則運行時系統(tǒng)調(diào)用父類的方法。因此,一個對象可以通過引用子類的實例調(diào)用子類的方法。 ?我們經(jīng)常說“哺乳動物有很多種叫聲”,比如,“吼”、“嚎”、“汪汪”、“喵喵”等,這就是叫聲的多態(tài)。當(dāng)把子類創(chuàng)建的對象的引用放到一個父類的對象中時,就得到了該對象的一個上轉(zhuǎn)型對象。當(dāng)一個類有很多子類時,并且這些子類都重寫了父類中的某個方法,那么這個上轉(zhuǎn)的對象在調(diào)用這個方法時就可能具有多種形態(tài),因為不同的子類在重寫父類的方法時可能產(chǎn)生不同的行為。 Java EE基礎(chǔ)教程 88 2021年 11月 10日星期三 例 420 這是運行時多態(tài)的例子。狗類的上轉(zhuǎn)型對象調(diào)用叫聲方法時產(chǎn)生的行為是“旺旺”,而貓類的上轉(zhuǎn)型對象調(diào)用叫聲方法時,產(chǎn)生的行 為是“喵喵”。 程序清單: ch04\ class 動物 { void cry(){ } } class 狗 extends 動物 { void cry(){ (狗 cry(): 汪汪 .....)。 } } Java EE基礎(chǔ)教程 89 2021年 11月 10日星期三 class 貓 extends 動物 { void cry(){ (貓 cry(): 喵喵 .....)。 } } class DynamicState{ public static void main(String[] args){ 動物 dongwu。 if(()=) { dongwu=new 狗 ()。 //上轉(zhuǎn)的對象 ()。 } else { dongwu=new 貓 ()。 //上轉(zhuǎn)的對象 ()。 } } } Java EE基礎(chǔ)教程 90 2021年 11月 10日星期三 例 421該例中,聲明了 A類型的變量 a,然后用 new建立 A類的子類 B的一個實例 b,并把對該實例的一個引用存儲到 a中, Java運行時系統(tǒng)分析該引用是類型 B的一個實例,因此調(diào)用子類 B的 callme方法。 程序清單: ch04\ class A{ void callme( ){ (Inside A39。s callme( ) method)。 } } class B extends A{ void callme( ){ (Inside B39。s callme( ) method)。 } } public class Dispatch{ public static void main( String args[ ] ){ A a = new B( )。 ( )。 } } Java EE基礎(chǔ)教程 91 2021年 11月 10日星期三 ?用這種方式可以實現(xiàn)運行時的多態(tài),它體現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計中的代碼復(fù)用和魯棒性。已經(jīng)編譯好的類庫可以調(diào)用新定義的子類的方法而不必重新編譯,而且還提供了一個簡明的抽象接口。如上例中,如果增加幾個 A的子類的定義,則用( )可以分別調(diào)用多個子類的不同的callme( )方法,只需分別用 new生成不同子類的實例即可。 Java EE基礎(chǔ)教程 92 2021年 11月 10日星期三 類的訪問權(quán)限與包的概念 返回 ? ? 類的訪問控制有 public、 abstract、 final及 friendly(無修飾符或缺?。┧姆N。不能用 protected 和 private 修飾類。 ? 1. public類 ? 表示所有其它的類都可以使用此類;這個類作為整體是可見和可使用的,程序的其他部分可以創(chuàng)建這個類的對象,訪問這個類可用的成員變量和方法。 ? 當(dāng)編寫一個 Java源代碼文件時,此文件通常被稱為編譯單元。每個編譯單元都必須要有一個后綴為 .java,而在編譯單元內(nèi)測可以有一個public類,該類的名稱必須與文件名稱相同 (包括大小寫,但不包括文件的后綴名 .java)。每個編譯單元只能有一個 public類,否則編譯器就不會接受。如果在該編譯單元之中還有額外的類的話,那么在包之外是無法看見這些類的,這是因為他們不是 public類,而且他們主要用來為主要 public類提供支持。 ? 雖然不是很常用,但編譯單元內(nèi)完全不帶 public類也是可能的。這種情況下,可以隨意對文件命名。當(dāng)然隨意命名會使得人們在閱讀和維 護代碼時產(chǎn)生混淆。 Java EE基礎(chǔ)教程 93 2021年 11月 10日星期三 ?2. abstract類 ?抽象類不可以直接實例化,不能直接產(chǎn)生屬于這個類的對象;但是我們可以通過子類繼承來使用經(jīng)過重寫的子類方法。子類如果不全部實現(xiàn)父類中的抽象方法,則子類也只能聲明為抽象類。抽象類中也可以聲明 static屬性和方法。 ?抽象方法必須使用 abstract來修飾,而包含抽象方法的類必須聲明為抽象類。不管是父類還是子類,只要有抽象方法就必須聲明為抽象類。 Java EE基礎(chǔ)教程 94 2021年 11月 10日星期三 例 422寫兩個類 Dog和 Bird,繼承抽象類 Animal,子類對父類的抽象方法進行重寫。 程序清單: ch04\ abstract class Animal{ public abstract void eat()。 //只有方法名,而沒有方法體 } class Dog extends Animal{ private String name。 public void setName(String name){ =name。 } public String getName(){ return name。 } public void eat(){ (小狗啃骨頭啦 )。 } } Java EE基礎(chǔ)教程 95 2021年 11月 10日星期三 class Bird extends Animal{ public void fly( ){ (小鳥飛呀飛呀 )。 } public void eat( ){ (小鳥吃蟲子啦 )。 } } public class BackAnimal{ public static void main( String args[ ] ){ Animal an = new Dog( )。 ( )。 an=new Bird()。 ()。 } } Java EE基礎(chǔ)教程 96 2021年 11月 10日星期三 ? 3. final類 ?在類名前加關(guān)鍵字 final,這個類就被定義為 final類,當(dāng)一個類被定義為 final時,它的所有方法都
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1