導航:首頁 > 編程語言 > java介面類

java介面類

發布時間:2022-01-12 17:35:15

A. java介面類有什麼作用

介面是一個標准,是一個約定,而不是一種實現,介面的目的是為了規范實現類,這樣就可以不用具體管實現類,因為你不管怎是實現,我只要知道你是實現了這個介面,那麼你肯定有那些方法,那麼我調用這個介面的方法就肯定沒問題。

舉個例子,有一個介面,規定一個方法 int calc(int b);
這個函數用於計算從1到b的和

比如有兩個類實現了這個介面
第一類是這么實現的
int calc(int b)
{
int sum = 0;
for(int i=1;i<=b;i++)
sum+=b;
return sum
}

第二個類是這么實現的
int calc(int b)
{
int sum = 0;
sum = (1+b) * b / 2
return sum;
}
可見不管哪個類實現了這個介面,我們只要調用calc方法就能計算出sum,而不用管他是怎麼實現的

B. java介面類有什麼用

介面 其實 可以理解成我們生活中用的插排 插排上不是有三孔的 兩孔的 等等 介面就好比一種規則 一種標准 你只有實現了這個介面(你的電源是三角的 或者是兩角的 )你才可以用這個介面里的方法(就好比你把電源插頭插到插排上 才可以用電一樣)

C. java中有哪些主要的介面和類

實際上完全可以把介面理解成為一種特殊的類,由常量和抽象方法組成的特殊類。

一般都是比較介面和抽象類 因為抽象類和介面有一定的相似性

介面是公開的,裡面不能有私有的方法或變數,是用於讓別人使用的,而類是可以有私有方法或私有變數的,

另外,實現介面的一定要實現介面里定義的所有方法,而實現抽象類可以有選擇地重寫需要用到的方法,一般的應用里,最頂級的是介面,然後是抽象類實現介面,最後才到具體類實現。

還有,介面可以實現多重繼承,而一個類只能繼承一個超類,但可以通過繼承多個介面實現多重繼承,介面還有標識(裡面沒有任何方法,如Remote介面)和數據共享(裡面的變數全是常量)的作用.

D. java 類實現介面方法

public class Aircraft implements Vehicle{
private int speed;
public Aircraft(){}
public void setSpeed(int speed){
this.speed=speed;
}
public int getSpeed(){
return this.speed;
}
public void start(int speed){
setSpeed(speed);
}
public void stop(){
this.speed=0;
}
}
Bus同上。
希望對你有所幫助。。。

E. java介面的分類

以下是引用片段:
public interface Actionlistener{
public abstract void actionPerformed(ActionEvent event);
}
僅且只有一個方法,只有實現了這個介面(重寫這個介面中的唯一一個方法),你才有資格去事件監聽器列表裡注冊(參數為Actionlistener類型),當事件源變動時,自動調用這個唯一的actionPerformed方法。 是沒有任何方法和屬性的介面。標識介面不對實現它的類有任何語意上的要求,它僅僅表明了實現它的類屬於一個特定的類型(傳遞)。
不推薦過多的使用標識介面。 用Java介面來聲明一些常量,然後由實現這個介面的類使用這些常量(以前在做畫板的時候這么干過)。建議不要模仿這種常量介面的做法。
【範例】
定義介面格式:
[public]interface 介面名稱 [extends父介面名列表]
{
//靜態常量
[public] [static] [final] 數據類型變數名=常量值;
//抽象方法
[public] [abstract] [native] 返回值類型方法名(參數列表);
}
實現介面格式:
[修飾符] class 類名[extends 父類名] [implements 介面A,介面B,···]
{
類成員變數和成員方法;
為介面A中的所有方法編寫方法體,實現介面A;
為介面B中的所有方法編寫方法體,實現介面B;
}
實例:
本例定義介面AreaInterface,其中有靜態常量pai和求面積的抽象方法area()。類Circle和類Rectangle實現了AreaInterface介面,即為介面中的抽象方法area()編寫了滿足各自要求的方法體,分別求圓形和長方形的面積。
程序:AreaInterface.java 1
2
3
4
5 package jiekou;
public interface AreaInterface{
double pai=Math.PI;
double area();
} 程序:Circle.java 1
2
3
4
5
6
7
8
9
10
11
12
13 package jiekou;
public class Circle implements AreaInterface{
double r;
public Circle(double x){
r=x;
}
//實現介面中的抽象方法,求圓面積
public double area(){
return pai * r * r;
}
public String toString(){
return 圓:r=+r+ area=+area();
}
} 程序:Rectangle.java 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package jiekou;
public class Rectangle implements AreaInterface{
double x,y;
public Rectangle(double a,double b){
x=a;
y=b;
}
public double area()//實現介面中的抽象方法,求長方形面積
{
return x * y;
}
public String toString()
{
return 長方形:x=+x+;y=+y+
area=+area();
}
} 區別Java介面和Java抽象類最大的一個區別,就在於Java抽象類可以提供某些方法的部分實現,而Java介面不可以,這大概就是Java抽象類唯一的優點吧,但這個優點非常有用。如果向一個抽象類里加入一個新的具體方法時,那麼它所有的子類都一下子都得到了這個新方法,而Java介面做不到這一點,如果向一個Java介面里加入一個新方法,所有實現這個介面的類就無法成功通過編譯了,因為你必須讓每一個類都再實現這個方法才行,這顯然是Java介面的缺點。
一個抽象類的實現只能由這個抽象類的子類給出,也就是說,這個實現處在抽象類所定義出的繼承的等級結構中,而由於Java語言的單繼承性,所以抽象類作為類型定義工具的效能大打折扣。在這一點上,Java介面的優勢就出來了,任何一個實現了一個Java介面所規定的方法的類都可以具有這個介面的類型,而一個類可以實現任意多個Java介面,從而這個類就有了多種類型。
不難看出,Java介面是定義混合類型的理想工具,混合類表明一個類不僅僅具有某個主類型的行為,而且具有其他的次要行為。
在語法上,抽象類和介面有著以下不同:
1.abstract class在Java語言中表示的是一種繼承關系,一個類只能使用一次繼承關系。但是,一個類卻可以實現多個interface。 繼承抽象類使用的是extends關鍵字,實現介面使用的是implements關鍵字,繼承寫在前面,實現介面寫在後面。如果實現多個介面,中間用逗號分隔。例:
public class Main extends JApplet
public class Main implements Runnable
public class Main extends JApplet implements ActionListener
public class Main extends JApplet implements ActionListener, Runnable
2.在abstract class中可以有自己的數據成員,也可以有非abstract的成員方法,而在interface中,只能夠有靜態的不能被修改的數據成員(也就是必須是static final的,不過在 interface中一般不定義數據成員),所有的成員方法都是abstract的。
3.abstract class和interface所反映出的設計理念不同。其實abstract class表示的是is-a關系,interface表示的是like-a關系。
4.實現介面的類必須實現其中的所有方法,繼承自抽象類的子類實現所有的抽象方法。抽象類中可以有非抽象方法。介面中則不能有實現方法。
5.介面中定義的變數默認是public static final 型,且必須給其初值,所以實現類中不能重新定義,也不能改變其值。
6.抽象類中的變數默認具有 friendly許可權,其值可以在子類中重新定義,也可以重新賦值。
7.介面中的方法默認都是 public abstract 類型的。

F. java 中的介面 是不是一個類

由下圖可以看出,介面和類同屬於java數據類型的引用數據類型,他們是同等級的,介面並不是類。類是用class定義,而介面是inteface定義。

G. java介面分幾類

單方法介面
以下是引用片段:
[2]public interface Actionlistener{
public abstract void actionPerformed(ActionEvent event);
}
僅且只有一個方法,只有實現了這個介面(重寫這個介面中的唯一一個方法),你才有資格去事件監聽器列表裡注冊(參數為Actionlistener類型),當事件源變動時,自動調用這個唯一的actionPerformed方法。
標識介面

是沒有任何方法和屬性的介面。標識介面不對實現它的類有任何語意上的要求,它僅僅表明了實現它的類屬於一個特定的類型(傳遞)。
不推薦過多的使用標識介面。
常量介面

用Java介面來聲明一些常量,然後由實現這個介面的類使用這些常量(以前在做畫板的時候這么干過)。建議不要模仿這種常量介面的做法。

H. java類和介面的區別

介面並不是類,編寫介面的方式和類很相似,但是它們屬於不同的概念。類描述對象的屬性和方法。介面則包含類要實現的方法。
除非實現介面的類是抽象類,否則該類要定義介面中的所有方法。
介面無法被實例化,但是可以被實現。一個實現介面的類,必須實現介面內所描述的所有方法,否則就必須聲明為抽象類。另外,在 Java 中,介面類型可用來聲明一個變數,他們可以成為一個空指針,或是被綁定在一個以此介面實現的對象。

介面與類的區別:
介面不能用於實例化對象。
介面沒有構造方法。
介面中所有的方法必須是抽象方法。
介面不能包含成員變數,除了 static 和 final 變數。
介面不是被類繼承了,而是要被類實現。
介面支持多繼承。

I. JAVA介面類型的方法

package;

classZoo{
{
publicvoideat(){
System.out.println("tigereat");
}

publicvoidsleep(){
System.out.println("tigersleep");
}
}

AnimalgetAnimal()//這里不明白,Animal不是介面么,怎麼可以定義方法?
{
returnnewAnimal()//還有這里,介面不是不能實例化么??你說的沒有錯,確實不能實例化,但是這里是匿名類,效果相當於代碼2
{
publicvoideat(){
System.out.println("animaleat");
}

publicvoidsleep(){
System.out.println("animalsleep");
}
};
}
//代碼2
AnimalgetAnimal2(){
{

@Override
publicvoideat(){
//TODOAuto-generatedmethodstub

}

@Override
publicvoidsleep(){
//TODOAuto-generatedmethodstub

}
}
returnnewAnimalTest();
}
}

classTest{
publicstaticvoidmain(String[]args){
Zooz=newZoo();
Animalan=z.getAnimal();
an.eat();
an.sleep();
}
}

interfaceAnimal{
voideat();

voidsleep();
}

J. java介面中可以定義類嗎

可以定義,也不僅限於抽象類。只是介面本身不能被實例化,介面內部的類是可以實例化的。
調用介面的內部類有兩種方法:
1.介面名.類名
2.創建實現類implements介面,再直接實例化內部類
示例代碼:
public interface Test{

class A{
public int a=1;
}

}

--

public class Program {
public static void main(String[] args) {
Test.A a = new Test.A();
System.out.println(a.a);
new B().method();
}
}
class B implements Test{

void method(){
System.out.println(new A().a);
}
}
親測。正常運行列印'1' [換行]'1'

閱讀全文

與java介面類相關的資料

熱點內容
精品php源碼 瀏覽:960
自己編寫雲伺服器搶紅包 瀏覽:203
java解壓縮文件加密 瀏覽:887
dlink列印伺服器默認地址 瀏覽:353
php休眠函數 瀏覽:372
金蝶如何打開伺服器 瀏覽:766
e4a手游輔助源碼 瀏覽:777
什麼app可以實時直播 瀏覽:106
蘋果13的app閃退什麼原因 瀏覽:775
尾盤選股源碼公式 瀏覽:450
php日期運算 瀏覽:931
天龍八部長歌伺服器什麼時候開的 瀏覽:199
鬼泣4模型在那個文件夾 瀏覽:229
單片機的串列口 瀏覽:58
phpjson轉化為數組 瀏覽:268
pdf導入excel 瀏覽:428
蘋果xsmax信任app在哪裡設置 瀏覽:53
自動外鏈php源碼 瀏覽:245
我的世界新手獎勵箱命令 瀏覽:146
linux更新vim 瀏覽:998