java中的實現介面和含有抽象方法的列舉類

2021-06-16 23:39:00 字數 1074 閱讀 5369

含有抽象方法的列舉型別:

public enum operator 

}*/plus

} ,minus

} ,times

} ,divide

};//為列舉類定義乙個抽血方法,這個抽象方法由不同的

//列舉值提供不同的實現

/***兩點說明:

*上面列舉值的後面的大括號實際上是乙個 匿名類所以編譯檔案

*後你會看到5個.class檔案,其中乙個是operator.class另外四個是匿名類的class檔案]

**個人以為這種實現方式,只有在每乙個列舉值擁有不同的操作時才比較合適

*否則推薦上一種實現方式

*/public abstract double eval(double x, double y);

public static void main(string args) 

}實現介面的列舉類

inte***ce genderdesc

enum gender implements genderdesc

//s實現介面的方法,這樣實現的介面與普通類幾乎一樣

//但是每個列舉值呼叫這個方法表現出一樣的行為

/*public void info() 

*///如果要想讓不同的列舉值具有不同的行為方式可以改寫成如下

//這種方式其實不是直接建立gender列舉類的例項,而是相當

//於建立gender的匿名子類的例項

//編譯程式後會看到gender$1.class 和 gende$2.class

//這兩個檔案就是匿名子類的.class檔案

//列舉值一定要在列舉類體的非注釋**開頭列出來,否則會出現錯誤。(我用的是jdk1.7,經試驗後得此結論)

male("男")

} , //此處的逗號不能少,因為這裡是列出列舉值

female("女")

} ; //列舉結束,加分號!

public string name;

private gender(string name)

}public class testgender

}

java中抽象 介面

1 抽象 抽象使用abstract關鍵字來體現,abstract修飾類 寫在class前面 代表該類是抽象類,不能被例項化,只能被繼承,抽象類中可以沒有抽象方法,但是只要有抽象方法,那麼該類就必須是抽象類 abstract修飾方法 寫在返回型別前面 代表方法是抽象方法,抽象方法不能有方法體,子類繼承...

Java的抽象和介面

抽象類不一定有抽象方法,但有抽象方法的類一定是抽象類或者是介面 抽象類無法進行例項化 根據多型的方式,有具體的子類進行例項化 抽象類的子類 要麼是抽象類 要麼重寫抽象類中的所有抽象方法 抽象類的成員特點 1 成員變數 既可以是變數,也可以是常量。abstract不能修飾成員變數。2 構造方法 有。3...

Java中的抽象類和介面

注意 抽象類不能被例項化。抽象類不一定包含abstract方法 可以有實現的方法 一旦包含abstract方法,則這個類必須宣告為abstract。抽象方法不能有主體。當乙個類繼承抽象類,需要將抽象類中的所有抽象方法全部實現。注意 介面不能被例項化。介面中所有方法不能有主體。乙個子類只能繼承乙個父類...