類的稱呼:
題目如圖:
解答:
圖二
public abstract class Top{ }
public class Tip extends Top { }
圖三
public abstract class Fee { }
public abstract class Fi extends Fee {}
圖四
public interface Foo{ }
public class Bar implements Foo{}
public class Baz extends Bar{ }
圖五
public interface Zeta{ }
public interface Beta{ }
public class Alpha implements Zeta{}
public class Delta extends Alpha implements Beta{ }
- 如果不想讓某個類被初始化,就以abstract這個關鍵詞將它標記爲抽象類。
public abstract class Employee { };
- 抽象的類可以帶有抽象和非抽象的方法。
public abstract void eat ();
抽象方法沒有方法體!直接以分號結束。如果你聲明出一個抽象方法,就必須將類也標記爲抽象的,你不能在非抽象類中擁有抽象方法。
public double getSalary(){}
- 如果類帶有抽象的方法,則此類必定標識爲抽象的。
- 抽象的方法必須在具體的類中運行。
- Java所有的類都是**Object(java.lang.Object)**直接或間接的子類。
- 方法可以聲明**Object **的參數或返回類型。
- 不管實際上所引用的對象是什麼類型,只有在引用變量的類型就是帶有某方法的類型時才能調用該方法。
- Object引用變量在沒有類型轉換的情況下不能賦值給其他的類型,若堆上的對象類型與所要轉換的類型不兼容,則此轉換會在執行期產生異常。
類型轉換的例子:Dog d = (Dog) x.getObject(aDog);
- 從ArrayList取出的對象只能被Object引用,不然就要用類型轉換來改變。
- Java不允許多重繼承,因爲那樣會有致命方塊的問題。
- 接口就好像是100%純天然抽象類。
- 以interface這個關鍵詞取代class來聲明接口。
- 實現接口時使用implements這個關鍵詞。
Dog implement Pet
- class可以實現多個接口。
- 實現某接口的類必須實現它所有的方法,因爲這些方法都是**public與abstract **的。
- 要從子類調用父類的方法可以用super這個關鍵詞來引用。
例如:super.RunReport( );