一、抽象類
1.1定義:抽象類是用來捕捉子類通用特性的。它不能被例項化,只能被用作子類的超類,使用abstract
修飾符來定義。
1.2抽象類和抽象方法:
- 有抽象方法的類只能被定義成抽象類,抽象類裡可以沒有抽象方法
- 抽象類和抽象方法都必須使用abstract
修飾符來修飾,抽象方法不能有方法體
- 抽象類不能被例項化,所以無法用new
關鍵字來建立抽象類的例項
- 抽象類的構造器不能用於建立例項,主要用於被子類呼叫
- 含有抽象方法的類(直接定義了乙個抽象方法;繼承了乙個抽象父類,但沒有完全實現父類的抽象方法;實現了乙個介面,但沒有完全實現介面包含的抽象方法)只能被定義為抽象類
下面即定義乙個抽象類:
public abstract class car
下面定義乙個類繼承上面的抽象類
public class benz extends car
}
1.3總結:
- 當使用abstract
修飾類時,表明這個類只能被繼承;
- 當使用abstract
修飾方法時,表明這個方法必須由子類提供實現(重寫);
-finally
類修飾的類不能被繼承,finally
修飾的方法並不能被重寫,因此finally
和abstract
永遠不能同時使用。
二、介面
2.1定義:如果說抽象類是從多個類中抽象出來的模板,那麼如果要將這中抽象進行的更徹底,則可以提煉出一種特殊的抽象類——介面(inte***ce
)介面裡所有的方法都是抽象方法。
2.2介面的定義:
-由於介面裡定義的是多個類共同的公共行為規範,因此介面裡所有的成員,包括常量、方法、內部類和列舉類都是public
訪問許可權
-介面中的方法預設都是使用public abstract
來修飾
-介面中的變數預設都是使用public abstract finally
來修飾
2.3介面的繼承
介面的繼承和類的繼承不一樣,介面允許多繼承,即乙個介面可以有多個直接父介面
下面定義兩個介面
public inte***ce inte***cea
public inte***ce inte***ceb
public inte***ce inte***cec extends inte***cea ,inte***ceb
main方法:
public class test
}
上述**中,inte***cec口繼承了inte***cea和inte***ceb,所以inte***cec獲得了它們的常量。
2.4介面的實現
介面的主要用途就是被實現類實現。
乙個類可以實現多個介面,使用implements
關鍵字,如下**所示:
public class impltest implements inte***ce1,inte***ce2
乙個類實現了乙個或者多個介面後,這個類必須完全實現這些介面裡所定義的全部抽象方法(重寫抽象方法)。否則,該類將保留從父介面那裡繼承到的抽象方法,該類也必須定義為抽象類。 java中介面和抽象類
包含抽象方法的類叫做抽象類。如果乙個類包含乙個或多個抽象方法,該類必須被限定為抽象的。如果從乙個抽象類繼承,並想建立改新類的物件,那麼就必須為基類中的所有抽象方法提供方法定義。如果不這樣做 可以選擇不做 那麼匯出類便也是抽象類,並且編譯器會強制我們使用abstract關鍵字來限定這個類。建立抽象類和...
Java中的抽象類和介面
注意 抽象類不能被例項化。抽象類不一定包含abstract方法 可以有實現的方法 一旦包含abstract方法,則這個類必須宣告為abstract。抽象方法不能有主體。當乙個類繼承抽象類,需要將抽象類中的所有抽象方法全部實現。注意 介面不能被例項化。介面中所有方法不能有主體。乙個子類只能繼承乙個父類...
Java 介面和抽象類
介面,inte ce,介面泛指供別人呼叫的方法和函式。介面的形式 public inte ce inte cename 介面的特點 1 介面中可以含有變數和方法。2 其中變數被隱式的指定為public static final 變數並且只能是這種變數。3 介面的方法隱式的指定為public abst...