java中的抽象類和介面

2021-07-13 05:09:49 字數 1776 閱讀 3087

一、抽象類

1.1定義:抽象類是用來捕捉子類通用特性的。它不能被例項化,只能被用作子類的超類,使用abstract修飾符來定義。

1.2抽象類和抽象方法:

- 有抽象方法的類只能被定義成抽象類,抽象類裡可以沒有抽象方法

- 抽象類和抽象方法都必須使用abstract修飾符來修飾,抽象方法不能有方法體

- 抽象類不能被例項化,所以無法用new關鍵字來建立抽象類的例項

- 抽象類的構造器不能用於建立例項,主要用於被子類呼叫

- 含有抽象方法的類(直接定義了乙個抽象方法;繼承了乙個抽象父類,但沒有完全實現父類的抽象方法;實現了乙個介面,但沒有完全實現介面包含的抽象方法)只能被定義為抽象類

下面即定義乙個抽象類:

public abstract class car
下面定義乙個類繼承上面的抽象類

public class benz extends car

}

1.3總結:

- 當使用abstract修飾類時,表明這個類只能被繼承;

- 當使用abstract修飾方法時,表明這個方法必須由子類提供實現(重寫);

-finally類修飾的類不能被繼承,finally修飾的方法並不能被重寫,因此finallyabstract永遠不能同時使用。

二、介面

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...