java08作業

第一天

1:教練和運動員案例(學生分析然後講解)
乒乓球運動員和籃球運動員。
乒乓球教練和籃球教練。
爲了出國交流,跟乒乓球相關的人員都需要學習英語。
請用所學知識:
分析,這個案例中有哪些抽象類,哪些接口,哪些具體類
抽象類:人
藉口:英語
具體類:
乒乓球運動員和籃球運動員。
乒乓球教練和籃球教練。


2:final關鍵字可以幹什麼?有什麼特點?
final修飾局部變量
基本數據類型:如果局部變量是一個基本數據類型,那麼被final修飾,基本數據類型的變量的值不能再改變!
引用數據類型:如果用final修飾引用類型的變量,那麼它不能在重寫分配堆內存空間,但是可以改變可以成員變量的值




3:final關鍵字的面試題?
A:修飾局部變量
B:初始化時機

4:多態是什麼,前提是什麼?
多態:一個事物在不同時刻體現出來的不同狀態
                1)條件1:必須有繼承關係(如果沒有繼承關係,談不上多態!)
2)條件2:必須有方法重寫
子類出現了父類一樣的 方法聲明
3)有父類引用指向子類對象:向上轉型
Fu f = new Zi() ;
多態的三個條缺一不可!




5:多態中成員訪問的特點?
成員變量 編譯看左邊,運行看左邊
成員方法 編譯看左,運行看右;由於存在方法重寫,所以就運行最終的就是子類的成員方法
靜態方法 編譯看左,運行看左


6:多態的好處及弊端?如何解決多態的弊端?
好處:
    1)提高代碼的維護性(由繼承保證)
    2)提高代碼的擴展性(由多態保證)
弊端
    不能訪問子類的特有功能
解決方案
    1)創建子類的具體對象,來訪問自己的特有功能;雖然可以解決多態的弊端,但是從內存角度考慮,需要創建子類對象,那麼必須在堆內存開闢空間,
    耗費內存,浪費空間!
    2)既然多態的第三個前提條件:父類引用指向子類對象,那麼可不可以將子類的引用指向父類對象呢?


7:什麼是向上轉型?什麼是向下轉型?
向下轉型:將父類的引用強制轉換爲子類的引用:前提必須有父類的引用存在;
向下轉型必須依賴於向上轉型!

8:抽象類概述及其特點?
每一個動物的吃和睡的功能不一樣,不應該把動物類定義爲一個具體類,而是給出一個聲明(abstract)
當一個類中如果有抽象功能(抽象方法)的時候,那麼這個類一定要定義爲抽象類!
態形式:父類的引用指向子類對象,通過子類進行初始化!
 抽象類的子類的特點:
 
1)抽象類的子類是抽象類,那麼沒有意義!
最終使用的就是通過子類進行對象初始化的,如果子類都被抽象修飾了,那麼也不能創建對象,所以沒意義

 抽象類多態:
強制子類必須重寫當前抽象的父類中所有的抽象方法
還可以提高代碼的維護性(裏面繼承關係保證!)



9:抽象類成員特點?
成員變量:
         可以是變量也可以是自定義常量
構造方法:
         抽象類可以有構造方法:包括有參構造和無參構造
         作用:通過抽象類多態的形式:讓子類進行數據的初始化
成員方法:
         可以有抽象方法,也可以有非抽象方法




10:抽象類的小問題
A:一個類如果沒有抽象方法,可不可以定義爲抽象類?如果可以,有什麼意義?
B:abstract不能和哪些關鍵字共存
一個抽象類中可以抽象,也可以有非抽象的(作爲一個判斷題記憶!)
抽象類不能實例化:抽象類不能創建對象
一個抽象類如何進行實例化:
通過抽象類多態形式:父類的引用指向子類對象,通過子類進行初始化!
抽象類的子類的特點:
1)抽象類的子類是抽象類,那麼沒有意義!
最終使用的就是通過子類進行對象初始化的,如果子類都被抽象修飾了,那麼也不能創建對象,所以沒意義
abstract不能和static,final,private修飾


11:接口的概述及其特點?
接口的概念:
           接口體現的是一種擴展功能。


接口的特點:不能實例化(不能直接創建對象)


12:接口的成員特點?
成員變量:
  只能是常量:存下默認修飾符:public static final (永遠建議自己給出默認修飾符)
構造方法:
接口是沒有構造方法的
成員方法:
  接口中的成員方法默認修飾符:public abstract(永遠建議自己給出默認修飾符)


13:抽象類和接口的區別?
               1)成員的區別:
  成員變量:
  抽象類:成員變量可以是常量,也可以是變量
  接口:成員變量只能是一常量:存在默認修飾符:public static final
  構造方法:
  抽象類:可以有無參構造,有參構造方法
   作用:通過子類進行數據初始化(通過子類創建對象)
  接口:沒有構造方法的
  成員方法的區別:
  抽象類:可以有抽象方法,也可以有非抽象方法
  接口:只能是抽象方法:存在默認修飾符:public abstract
 
  2)關係的區別:
  類與類的關係:
  繼承關係:extends,java中只支持單繼承,不支持多繼承,但是可以多層繼承!
  類與接口的關係:
  實現關係:implements,並且,一個類在繼承另一個類的同時,可以實現多個接口
  (class 子實現類名  enxtends Object implements 接口名1,接口名2...)
 
  接口與接口的關係
  繼承關係:extends,可以支持單繼承,也可以多繼承!
 
  3)設計理念的區別:
  抽象類:
  體現的是一種"is a"的關係,存在繼承關係!(抽象類多態)
  接口:
  體現的是一種"like a"的關係,由於接口的一種擴展功能





第二天

2:形式參數和返回值問題
形式參數
基本類型
引用類型
返回值類型
基本類型
引用類型




3:內部類的概述及訪問特點
內部類:在一個類中定義另一個類
訪問特點:外部類名.內部類名 對象名 = new 外部類名.內部類名() ;




4:內部類的分類
答:成員內部類:在外部類的成員位置
    局部內部類:在外部了的局部位置定義的這個類


5:匿名內部類的格式和應用及面試題


答:new 接口名或者類名(){
  方法重寫;
  }
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章