abstract
由abstract關鍵字修飾的類稱為抽象類,可以將某些類共有的行為抽象出來,形成約束,提高開發效率,
//抽象類
public abstract class Action{
//抽象方法,只有方法名字,沒有方法的實作
public abstract void doSth();
}
- 抽象類不可以通過new關鍵字創建實體
- 抽象類中可以有普通方法
- 抽象方法必須在抽象類中
- 抽象類可以有構造方法,但只在子類創建實體時呼叫
interface
使用interface 創建 的類稱為介面,
在普通類中只有具體實作;抽象類中,具體實作和規范(抽象方法)都有;而在介面中只有規范,沒有具體實作,將約束和實作分離,
介面中定義的屬性默認都被final修飾的靜態屬性,且訪問限制為public
介面中定義的方法默認是抽象的,且訪問限制為public
interface UserService{
//public 和 final static是多余的
public final static int num = 1001;
//public 和 abstract是多余的,在interface中,不需要額外宣告訪問限制和抽象類,默認都是public和abtract
public abstract void run(String name);
interface TimerService{
void add(int t);
//這不是普通的方法,這實際上是為該方法定義了默認行為,該方法可以被正常重寫,訪問限制也默認是public,
//實作該介面的類可以選擇不重寫該方法,可以直接呼叫
default void saySth(Stirng words){
System.out.println("Saying "+words);
}
}
介面需要有實作類,一個類想要實作一個介面,需要通過implement關鍵字,一旦實作了某個介面,就必須實作介面中的方法,一個類可以同時實作多個介面,
class UserServiceImpl implements UserService,TimerSerice{
//UserServiceImpl類實作了兩個介面,就必須同時實作這兩個介面中的方法
public void run(String name){
System.out.println(name);
}
public void run(int t){
//該方法沒有被實作,但可以直接呼叫
saySth("Hello");
System.out.println(t);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/549117.html
標籤:其他
下一篇:逍遙自在學C語言 | 算數運算子
