當前位置:首頁 » 編程語言 » java介面的實例

java介面的實例

發布時間: 2022-04-22 20:06:28

1. 如何理解java的介面舉一個例子

介面的作用其實是提供你 在不改動原有代碼的基礎上 增加、改變類的功能。那麼為什麼在設計模式里應用廣泛呢?因為在面向對象的設計原則中有那麼一條開放封閉原則,內容大致如下:一個良好的設計應該可以在不改動原有代碼或者改動少數代碼的基礎上增加或者改變原有的功能。因此介面正好符合這一需求。接下來看一下代碼實例你就會明白。以下代碼是模仿JDBC的設計原則所寫的,並不是原代碼,但是設計思想是一致的,之所以選擇這樣一個例子是因為你可以對介面的應用有一個感性的認識

2. Java 介面的實現和創建實例

此處printer並不是介面,他和betterPrinter均是類吧,典型的工廠模式返回對象的,只有Output是介面才對。

3. 請問JAVA介面能實例化嗎如果能請舉例說明下好嗎

如果你看見過介面實例化的例子,那隻是內部匿名類 還是要覆寫介面中的方法體
比較常見的例子 是Swing里的
EventQueue.invokeLater(new Runnable(){
public void run(){
...............
}
});

還有一些 new ActionListener()之類的內部匿名類,這些匿名類也只是實現了這些介面,並且必須覆寫介面的中的方法。

總而言之 ,介面是不能實例化的,因為介面中只有方法名稱,沒有方法體,所以沒辦法實例化
對於一些實現了介面的內部匿名類,雖然表面形式是介面被new 出來了,但是不要被表象迷惑了,多熟悉一下這種寫法,就自然知道其本質只是一個 實現了某種介面的類

4. 在Java中,介面有什麼實際點的應用最好給個例子

介面主要是性能好,把數個類公共的方法放一起,來實現多態 讓程序代碼變得更靈活.
public interface Say{ //聲明一個介面
public void talk();
}
public class China implements Say{ //China 類 實現Say介面 並實現talk方法
public void talk(){
System.out.println("我是中國人,我說中國話");
}
}
public class America implements Say{ //America 類 實現Say介面 並實現talk方法
public void talk(){
System.out.println("我是美國國人,我說英語");
}
}
public class Test{
public static void main(String[] args) {
Say china = new China();
china.talk(); //列印 "我是中國人,我說中國話"
Say america= new America ();
china.talk(); //列印 "我是美國國人,我說英語"
}
}
上面演示了在介面中實現多態的方法,提高了程序靈活性(我直接在這里寫的,不知道有沒有單詞寫錯)

5. 求java用介面創建對象的實例

import java.lang.Math;
public class N20{
public static void main(String[] args){

Rectangle r1=new Rectangle(3,5); //實例化對象,使用所在類方法
System.out.println("(Rectangle) Diagonal="+r1.getDiagonal());
System.out.println("(Rectangle) Are="+r1.are());

Square s1=new Square(2);
System.out.println("(Square) Diagonal="+s1.getDiagonal());
System.out.println("(Square) Are="+s1.are());

/*
EqualDiagonal e1=new Rectangle(3,5); //利用介面
System.out.println("(Rectangle) Diagonal="+e1.getDiagonal());
Rectangle r1=new Rectangle(3,5);
System.out.println("(Rectangle) Are="+r1.are());
EqualDiagonal e2=new Square(2); //利用介面
System.out.println("(Square) Diagonal="+e2.getDiagonal());
Rectangle r2=new Square(2); //利用多態
System.out.println("(Square) Are="+r2.are());
*/

}
}
class Rectangle implements EqualDiagonal{
protected double side1;
protected double side2;

Rectangle(double side1,double side2){
this.side1=side1;
this.side2=side2;
}

public double are(){
return side1*side2;
}
public double getDiagonal(){
return Math.sqrt(side1*side1+side2*side2);
}
}
class Square extends Rectangle implements EqualDiagonal{
Square(double side){
super(side,side); //父類構造方法需要2個參數
}
public double are(){
return super.are();
}
public double getDiagonal(){
return Math.sqrt(2)*side1;
}
}
interface EqualDiagonal{
double getDiagonal();
}

6. 關於JAVA介面的例子分析~~

附上一圖,希望能夠幫上你的忙。

通過附圖,我們可以了解到DY是介面,它被兩個子類實現,分別是softstudent,softschool。其中softschool還自定義了一個方法名叫print,參數便是DY介面,所以能夠對softstudent進行輸出。

Stringcontent表示的是參數名叫content,它的類型是字元串,名字可以隨便換,但不能是JAVA關鍵字,比如java,while,for等等。

new是構造的意思的,一般類都有默認的構造器,用於實例化類。

最後想說的話:

1,在JAVA世界,一般類名標准都要求單詞首字大寫,比如softschool應該寫成SoftSchool,這是業界內默認的約定。

2,左大括弧不像.net那樣。

舉個例子給你參考:

publicclassSoftSchool{

publicvoidtest(){

//...yourcodes

}

}

publicclassPrinter{

publicstaticvoidmain(String[]args){

SoftSchoolsoftSchool=newSoftSchool();

softSchool.test();

}

}

7. java語言中實現介面的實例

abstract class Person {
public abstract void Eat();
public abstract void Sellp();
}

interface Father {
public void Smoking();
public void GoFishing();
}

interface Mon {
public void WatchTV();
public void Cook();
}

class Me extends Person implements Father,Mon{ //使用「implements」來實現介面
public void Eat() {
System.out.println("我喜歡吃魚香茄子");
}

public void Sellp() {
System.out.println("我喜歡睡覺時做夢");
}

public void Smoking() {
System.out.println("我不喜歡抽煙");
}

public void GoFishing() {
System.out.println("我喜歡釣魚");
}

public void WatchTV() {
System.out.println("我喜歡看電視");
}

public void Cook() {
System.out.println("我不太會做菜");
}
}

public class Test {
public static void main(String[] args) {
Person p1 = new Me();
p1.Eat();
p1.Sellp();

Mon m1 = (Mon)p1;
m1.WatchTV();
m1.Cook();
}
}

8. 誰能給我舉兩個java介面的列子。

你的PC機上,USB介面是干什麼用的?
不管你用的是什麼外連設備,都必須支持這個USB介面才能連到你的電腦上,至於外部設備的細節,主版廠商是不會關心的.
比如你寫資料庫程序,MySQL,
Oracle等,不同的資料庫廠商,都有不同的技術標准,語法上也有差異,你寫一個程序只能針對某一個資料庫,為了解決這個問題Java給出了連接資料庫介面JDBC,使程序員不必關心不同資料庫的內部細節,只要找到實現了JDBC中介面的類就可以進行資料庫連接了,而這些類由不同的資料庫廠商自己去定義.程序員只要使用介面中定義的方法就可以了.
JAVA中介面只關心功能,只要一個類去實現了這個介面,就可以通過介面調去這個類去使用介面中定義的功能.即,方法.這些功能是怎麼實現的,使用者不必去關心.JAVA不支持多重繼承,因為那樣會使類與類之間的結構不清晰,但有時需要類似功能,可以能過介面來實現,
Java中介面中的成員只有常量,和方法,其中常量是默認用public
static
final關鍵字修飾的,因此可以用介面名直接調用介面中的常量,介面中的方法是默認用public
abstract
關鍵字修飾.如查介面中定義的方法拋出異常,那麼實現這個介面的類,在定義這個方法時可以不拋出異常,但是如果拋出,就必拋出介面中方法拋出異常類的子孫類,而不能拋出介面方法定義的異常類的父類,否則會產生編譯異常
類可以實現多個介面,但不支持多重繼承,但介面是支持多重繼承的
多態可以減少代碼的重復,如在兩個類中有類似的功能即方法,可以為他們提供一個抽象父類,子類分別實現父類所定義的方法,通過父類動態的調用不同的子類,來得到這個方法的不同實現,從而減少代碼的重復,如果使用抽象類,就會改變子類的原本繼承體系,因為JAVA不支持多重繼承,而使用介面就可以達到這個要求.

9. java 介面怎麼用應該怎麼實現

java語言不支持一個類有多個直接的父類(多繼承),但可以實現(implements)多個介面,間接的實現了多繼承
用法public class test implements 介面名稱
當類實現了某個Java介面時,它必須實現介面中的所有抽象方法,否則這個類必須聲明為抽象的

比較抽象類與介面
1, 抽象類與介面都位於繼承樹的上層
相同點
1, 代表系統的抽象層,當一個系統使用一顆繼承樹上的類時,應該盡量把引用變數聲明為繼承樹的上層抽象類型,這樣可以提高兩個系統之間的送耦合
2, 都不能被實例化
3, 都包含抽象方法,這些抽象方法用於描述系統能提供哪些服務,但不提供具體的實現
不同點:
1, 在抽象類中可以為部分方法提供默認的實現,從而避免在子類中重復實現它們,這是抽象類的優勢,但這一優勢限制了多繼承,而介面中只能包含抽象方法.由於在抽象類中允許加入具體方法,因此擴展抽象類的功能,即向抽象類中添加具體方法,不會對它的子類造成影響,而對於介面,一旦介面被公布,就必須非常穩定,因為隨意在介面中添加抽象方法,會影響到所有的實現類,這些實現類要麼實現新增的抽象方法,要麼聲明為抽象類
2, 一個類只能繼承一個直接的父類,這個父類可能是抽象類,但一個類可以實現多個介面,這是介面的優勢,但這一優勢是以不允許為任何方法提供實現作為代價的三, 為什麼Java語言不允許多重繼承呢?當子類覆蓋父類的實例方法或隱藏父類的成員變數及靜態方法時,Java虛擬機採用不同的綁定規則,假如還允許一個類有多個直接的父類,那麼會使綁定規則更加復雜,
因此,為了簡化系統結構設計和動態綁定機制,Java語言禁止多重繼承.而介面中只有抽象方法,沒有實例變數和靜態方法,只有介面的實現類才會實現介面的抽象方法(介面中的抽象方法是通過類來實現的),因此,一個類即使有多個介面,也不會增加Java虛擬機進行動態綁定的復雜度.因為Java虛擬機永遠不會把方法與介面綁定,而只會把方法與它的實現類綁定.四, 使用介面和抽象類的總體原則:
1, 用介面作為系統與外界交互的窗口站在外界使用者(另一個系統)的角度,介面向使用者承諾系統能提供哪些服務,站在系統本身的角度,介面制定系統必須實現哪些服務,介面是系統中最高層次的抽象類型.通過介面交互可以提高兩個系統之間的送耦合系統A通過系統B進行交互,是指系統A訪問系統B時,把引用變數聲明為系統B中的介面類型,該引用變數引用系統B中介面的實現類的實例。
public interface B
{
}
public class C implements B
{
}
public class A
{
}
B a = new C();
2, Java介面本身必須非常穩定,Java介面一旦制定,就不允許隨遇更加,否則對外面使用者及系統本身造成影響
3, 用抽象類來定製系統中的擴展點
抽象類來完成部分實現,還要一些功能通過它的子類來實現

10. java介面可以實例化嗎

介面是不能直接實例化的,你這里的d必然是某一個實現了IDependency
借口的class傳遞進來的。
不過也經常這樣用到,看上去是直接實例化:
Runnable
task
=
new
Runnable()
{
public
void
run()
{
..
}
};
這里必然要實現介面的方法。

熱點內容
個人網站模板源碼 發布:2025-05-18 02:51:17 瀏覽:489
主伺服器ip地址 發布:2025-05-18 02:46:29 瀏覽:854
電腦配置太低玩不了絕地求生怎麼辦 發布:2025-05-18 02:38:39 瀏覽:796
存儲過程怎麼出錯了 發布:2025-05-18 02:37:16 瀏覽:367
32寸演算法 發布:2025-05-18 02:22:14 瀏覽:743
寶塔資料庫備份 發布:2025-05-18 02:14:18 瀏覽:192
安卓商店下載的光遇是什麼服 發布:2025-05-18 02:13:38 瀏覽:31
網頁挖礦源碼 發布:2025-05-18 02:13:34 瀏覽:307
centosftp伺服器設置參數 發布:2025-05-18 02:12:55 瀏覽:216
賬號密碼保存在瀏覽器哪裡 發布:2025-05-18 01:56:43 瀏覽:833