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

正文內(nèi)容

[工學(xué)]jaa程序設(shè)計(jì)-資料下載頁

2025-01-19 11:03本頁面
  

【正文】 sition of rectangle is:x== 若父類中定義了一個或多個構(gòu)造函數(shù), java不提供默認(rèn)構(gòu)造方法 多態(tài)性 ? 對象的上轉(zhuǎn)型對象 Animal a=new Tiger( )。 ? 上轉(zhuǎn)型對象會失去原對象的一些 特有的屬性 和功能 ? 上轉(zhuǎn)型對象不能操作子類 新增 的成員變量和 方法 ? 上轉(zhuǎn)型對象可以操作子類 繼承或隱藏 的成員 變量 ? 上轉(zhuǎn)型對象可以使用子類 繼承或重寫 的方 法,若子類重寫了父類的某個方法,上轉(zhuǎn)型 對象調(diào)用該方法一定是調(diào)用了 子類的重寫方 法 。 ? 可以將對象的上轉(zhuǎn)型對象再 強(qiáng)制轉(zhuǎn)換 為一個子類對象,此時該子類對象又具備了子類 所有的屬性和功能 Tiger t=( Tiger) a。 class A { int x。 int y。 A (int a,int b) { x=a。 y=b。 } void f( ) { (this is in class A:x=+x+y=+y)。 } void g( ) { (this is a function in class A!)。 } } class B extends A { int x,z。 B (int a,int b,int c,int d) { super(a,b)。 x=c。 z=d。 } void output( ) { (in class B:x=+x+z=+z)。 (in class A:x=++y=+y)。 } void f( ) { (this is in class B!x=+x+“z=“+z)。 } } public class DuoTai { public static void main(String[] args) { A a=new B(1,2,3,4)。 =6。 =7。 =8。 ((B)a).z=8。 ((B)a).x=9。 ( )。 ((B)a).output( )。 ()。 ()。 } } in class B:x=9z=8 in class A:x=6y=7 this is in class B!x=9z=8 this is a function in class A! 可通過調(diào)用 f( )間接訪問 B類中的同名域和新增域 ( )的入口地址 ( )的入口地址 ( )的入口地址 B類對象 B類對象的上轉(zhuǎn)型對象 ( )的入口地址 多態(tài)的實(shí)現(xiàn) 一個接口,多種實(shí)現(xiàn) ?運(yùn)行時多態(tài)的實(shí)現(xiàn) ? 通過繼承中 超類 對象引用指向子類對象來實(shí) 現(xiàn) ? 通過 抽象類 對象引用指向子類對象來實(shí)現(xiàn) ? 通過 接口 類型變量引用實(shí)現(xiàn)接口的類的對象 來實(shí)現(xiàn) ? 參數(shù)多態(tài)的實(shí)現(xiàn) ? 通過 重載 實(shí)現(xiàn) ? 形參的 個數(shù) 、 類型 或 順序 不同 梯形底的錐體積是 圓形底的錐體積是 ? 多態(tài)可以讓程序 對擴(kuò)展開放,對修改關(guān)閉 ,增強(qiáng)代碼的可維護(hù)性 ? 應(yīng)對抽象基類的修改“關(guān)閉” ?若再增加一個抽象方法,則所有子類都要作出修 改; ? 應(yīng)對增加 abstract的子類“開放” ? 在程序中再增加抽象基類的子類時,不需要修改 其他重要的類 動態(tài)綁定 ?將對方法的調(diào)用連系到調(diào)用其的對象稱為 綁定 ?若綁定是在 編譯或連接時 確定的稱作 前綁定 ;在 運(yùn)行時 確定的稱為 后綁定 或 動態(tài)綁定 。 ?除了 static與 final( private) 方法, Java中所有的方法都采用后綁定 ? final( private)方法不能被重寫; static方法可以被重寫,但不會發(fā)生后綁定 this is class A! this is class B! 構(gòu)造函數(shù)與多態(tài)性 ? 若在基類的構(gòu)造函數(shù)中調(diào)用某個方法,而該方法又被子類重寫,則 ? 創(chuàng)建子類對象調(diào)用基類構(gòu)造函數(shù)時,調(diào)用的 是類的繼承層次中 最后被重寫的版本 。 ? 若子類中重寫的方法用到了子類中定義的成 員變量,則注意 構(gòu)造器的執(zhí)行過程 : ? 裝載程序加載主類 ? 自下而上裝載父類 ? 自上而下執(zhí)行 static成員變量初始化 ? 為子類對象分配空間并將成員清 0 ? 調(diào)用父類構(gòu)造器進(jìn)行初始化 ? 執(zhí)行子類構(gòu)造器進(jìn)行初始化 ? 最好在構(gòu)造函數(shù)中只調(diào)用 final或 private方法 A A ( ) { … void g( )。 } void g( )。 B void g( )。 C void g( )。 創(chuàng)建 B類對象時調(diào)用 創(chuàng)建 C類對象時調(diào)用 創(chuàng)建 C類對象時調(diào)用 class A{ int x。 A ( int a ) { setVal(a)。 (Constructor in class A!)。 } void setVal ( int a ) { x=a。 (function of class A! x=+x)。 } } class B extends A { int y。 void setVal ( int a ) { (function of class B! y=+y)。 y=a。 } B ( int a,int b ) { super(a)。 y=b。 (Constructor in class B!)。 } void output( ) { (x=+x+y=+y)。 } } public class F { public static void main (String[] args) { B b=new B(1,2)。 ( )。 } } function of class B! y=0 Constructor in class A! Constructor in class B! x=0y=2 接口 ? 接口定義 [public] interface 接口名 [extends 父接口名表 ] { 常量聲明 。 方法聲明 。 } ? 方法一定是 public abstract,常量一定是 public static,但關(guān)鍵字可省略 ?接口使用 class 類名 implements 接口名列表 ? 若一個類使用了某接口,則必須實(shí)現(xiàn)該接口 的 所有 方法 公有接口 ? 注意 ? 用戶可以自定義接口 ? import 語句不僅可以引入包中的類,也可以 引入包中的接口 ? 接口中的常量既可以被 實(shí)現(xiàn)該接口的類對象 或類名 調(diào)用,也可以用 接口名 直接調(diào)用。在實(shí) 現(xiàn)該接口的類內(nèi)部可以 直接 訪問。 ? public接口可以被 任何類 聲明實(shí)現(xiàn), 友好 接口 可以被與該接口在 同一個包 中的類聲明實(shí)現(xiàn) ? 若父類實(shí)現(xiàn)了某個接口,那么子類也就自然 實(shí)現(xiàn)了該接口,不必使用 implements聲明 ? 類在實(shí)現(xiàn)接口中的抽象方法時,必須用 public ? 若一個類未實(shí)現(xiàn)接口中的所有方法,則該類 必須是 abstract類 為什么要使用接口 ? 機(jī)動車 abstract void 收取費(fèi)用 ( ) abstract void 調(diào)節(jié)溫度 ( ) 出租車 public void 收取費(fèi)用 ( ) public void 調(diào)節(jié)溫度 ( ) ? ? ? ? ? 拖拉機(jī) public void 收取費(fèi)用 ( ) public void 調(diào)節(jié)溫度 ( ) 公共汽車 public void 收取費(fèi)用 ( ) public void 調(diào)節(jié)溫度 ( ) 飛機(jī) public void 收取費(fèi)用 ( ) public void 調(diào)節(jié)溫度 ( ) 電影院 public void 收取費(fèi)用 ( ) public void 調(diào)節(jié)溫度 ( ) interface 收費(fèi) void 收取費(fèi)用 ( ) interface 調(diào)溫 void 調(diào)節(jié)溫度 ( ) public void 收取費(fèi)用 ( ) 公共汽車 出租車 public void 收取費(fèi)用 ( ) public void 調(diào)節(jié)溫度 ( ) implements implements implements 飛機(jī) public void 收取費(fèi)用 ( ) public void 調(diào)節(jié)溫度 ( ) 電影院 public void 收取費(fèi)用 ( ) public void 調(diào)節(jié)溫度 ( ) ? 接口帶來的方便 ? 不同的類可以使用相同的接口,同一個類可 以實(shí)現(xiàn)多個接口 ? 實(shí)現(xiàn)相同接口的類可以沒有聯(lián)系 ? 接口回調(diào)與多態(tài) ? 把實(shí)現(xiàn)某一接口的類創(chuàng)建的對象引用賦值給 該接口聲明的接口變量 ? 接口變量回調(diào)接口方法 時產(chǎn)生多態(tài) ? 使用接口可以體現(xiàn)程序設(shè)計(jì)的“開 —閉”原則 ? 對接口的修改“關(guān)閉” ? 對增加實(shí)現(xiàn)該接口的類“開放” ? 接口做參數(shù) ? 如果方法的參數(shù)是接口類型,用戶可以將任 何實(shí)現(xiàn)該接口的類的對象引用傳遞給該接口參 數(shù) ? abstract類與接口的比較 ? 都可以有 abstract方法 ? abstract類中可以有非 abstract方法,但接口 不可以 ? 接口中只可以有常量,不能有變量; abstract 類中既可以有常量,也可以有變量 ? 類可以實(shí)現(xiàn)多個接口,但只能繼承一個抽象 類 area= 梯形的面積是 area= 圓的面積是 Java的“多重繼承” ? 既繼承基本類又實(shí)現(xiàn)接口時,應(yīng)先出現(xiàn)基本類再出現(xiàn)接口 import .*。 interface CanFight { void fight( )。 } interface CanSwim { void swim( )。 } interface CanFly { void fly()。 } class ActionCharacter { public void fight( ) { (“can fight!”)。 } } class Hero extends ActionCharacter implements CanFight, CanSwim, CanFly { public void swim( ) {(“can swim!”)。} public void fly( ) {(“can fly!”)。} } 不占據(jù)存儲空間 public class Adventure { static void t(CanFight x) { ( )。 } static void u(CanSwim x) { ( )。 } static void v(CanFly x) { ( )。 } static void w(ActionCharacter x) { ( )。 } public static void main(String[] args) { Hero i = new Hero( )。 t(i)。 u(i)。 v(i)。 w(i)。 } } can fight! can swim! can fly! can fight! 能上塑造型到多個基礎(chǔ)類 抽象類和接口的選擇 ? 假如想創(chuàng)建的基礎(chǔ)類沒有任何方法實(shí)現(xiàn)或 者成員變量,那么無論如何都愿意使用接 口,而不要選擇抽象類。 ?只有在必須使用方法實(shí)現(xiàn)或者成員變量的 時候,才應(yīng)考慮采用抽象類。 interface 收費(fèi) void 收取費(fèi)用 ( ) 出租車 p
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1