標籤:java 基礎
1.文字闡述靜態代碼塊的作用
答:靜態代碼塊只在類載入的時候執行一次,可以使用它來初始化資源檔,尤其是那種只需一次載入資源檔
2.構造代碼塊與建構函式的調用順序如何?和方法的聲明位置是否有關?為什嗎?構造代碼塊的作用是什嗎?
答:構造代碼塊先於建構函式執行,與方法的聲明位置無關.構造代碼塊可以實現代碼的重用,也可以用其來初始化屬性成員變數
3.類載入時,是否一定會執行靜態代碼塊?如何手動控制類載入?
答:類載入時不一定載入靜態代碼塊,使用forName載入類時,可以通過設定其第二個參數來進行控制.
public class Main {
public static void main(String[] args) throws Exception {
Class.forName("homework.Person",false,Person.class.getClassLoader()).getName();
}
}
4.定義類Person,Man,Woman形成繼承關係。
答:
class Person{}
class Man extends Person{}
class Woman extends Person{}
5.什麼是抽象方法?什麼是抽象類別?抽象類別是否有建構函式,是否可以重載?
答:抽象方法是子類公有的方法,在父類中定義,由子類繼承並實現,抽象方法只能在抽象類別中定義,並且不能夠有方法體.抽象方法有建構函式
,在子類執行個體化的時候會被調用,該方法可以被重載.
6.抽象修飾符有哪些非法組合?並給出合理的解釋?
答:
a.abstract+static:static表示該方法只屬於類,但是在抽象類別中定義的抽象方法沒有方法體,即使能調用也沒有任何意義.
b.abstract+private:父類的private方法在子類繼承後其許可權變為不可訪問,故不能實現該方法.
c.abstract+final:fianal表示該方法不能被重寫,這違背了抽象方法的核心思想,即子類繼承並重寫.
7.super和this作用以及用法以及注意事項?
答:super是指向當前類的超類的引用,super()會調用當前類的父類的構造方法.
this是指向當前類的引用,this()會調用當前類的構造方法.
這兩個方法在使用的時候只能寫在方法體的第一行.
8.白富美案例
答:
定義三個介面:
public interface IWhite{}
public interface IRich{}
public interface IBeauty{}
定義類實現以上介面:
public class SuperGirl implements IWhite,IRich,IBeauty{}
定義土豪:
public class HAO{
public void marring(SuperGirl){
System.out.println("土豪只接受白富美"+new SuperGirl())
}
}
大資料第五天作業