Ⅰ 如何理解java的介面舉一個例子
介面的作用其實是提供你 在不改動原有代碼的基礎上 增加、改變類的功能。那麼為什麼在設計模式里應用廣泛呢?因為在面向對象的設計原則中有那麼一條開放封閉原則,內容大致如下:一個良好的設計應該可以在不改動原有代碼或者改動少數代碼的基礎上增加或者改變原有的功能。因此介面正好符合這一需求。接下來看一下代碼實例你就會明白。以下代碼是模仿JDBC的設計原則所寫的,並不是原代碼,但是設計思想是一致的,之所以選擇這樣一個例子是因為你可以對介面的應用有一個感性的認識
Ⅱ 給個Java介面回調的例子
介面回調是指:可以把使用某一介面的類創建的對象的引用賦給該介面聲明的介面變數,那麼該介面變數就可以調用被類實現的介面的方法。實際上,當介面變數調用被類實現的介面中的方法時,就是通知相應的對象調用介面的方法,這一過程稱為對象功能的介面回調。
示例代碼:
interface People{ //介面
void peopleList();
}
class Student implements People{ //介面實現類
public void peopleList(){ //實現介面方法
System.out.println("I'm a student.");
}
}
class Teacher implements People{ //介面實現類
public void peopleList(){ //實現介面方法
System.out.println("I'm a teacher.");
}
}
public class Example{
public static void main(String args[]){
People a; //聲明介面變數
a=new Student(); //實例化,介面變數中存放對象的引用
a.peopleList(); //介面回調
a=new Teacher(); //實例化,介面變數中存放對象的引用
a.peopleList(); //介面回調
}
}
輸出結果:
I』m a student.
I』m a teacher.
Ⅲ JAVA里的介面誰能給我編寫個例子解釋下啊
昂, 在java里 基本都是面向介面編程開發, 為什麼呢·,應為一個類只能繼承一個類 ,卻能實現多個介面,
首先 用起來方便,結構清晰
在j2ee中的介面也就是類,類與類之間的通信因為介面而變的簡單易懂
舉個簡單的JDBC的例子吧,比如有個BaseDao介面,現在有MySQLDao實現了一個(我們可以把具體的實現類配在配置
文件中,再通過反射進行實例化),也就類似這樣的:
BaseDao = (BaseDao)(Class.forName(Config.getDaoName()).newInstance());
其中Config.getDaoName()可以獲得配置文件中的配置,比如是:com.bao..impl.MySQLDao。
之後,那些人開始要燒錢了,要改用Oracle了,這樣我們只要按BaseDao的定義,再實現一個OracleDao就可以了,
再將配置文件中的配置改為:com.bao..impl.OralceDao就可以了,而在已經寫好的代碼中,我們可以一行不
改的進行了資料庫移植,這個就是面向對象設計原則中的「開-閉原則」(對增加是開放的,對修改是封閉的)。但
這只是理論上的,現實中很難做到的。
Ⅳ java新手 關於多個介面的例子
OK的,樓主,我運行過了,如下:
interface DriveControl {
void startEngine();
}
interface Repairable {
void repair();
}
public class Car implements DriveControl, Repairable {
String model;
public Car() {
System.out.println("Car init");
}
public Car(String model) {
this.model = model;
}
void printModel() {
System.out.println("The model of this car is" + this.model);
}
public void startEngine() {
System.out.println("Start engine");
}
public void repair() {
System.out.println("Car is repaired");
}
public static void main(String[] args) {
Car car = new Car();
DriveControl control = (DriveControl) car;
control.startEngine();
Repairable repairable = (Repairable) car;
repairable.repair();
}
}
運行結果:
Car init
Start engine
Car is repaired
Ⅳ java中什麼是介面介面的作用是什麼
java介面:
1、Java語言中存在的結構,有特定的語法和結構。
2、Java語言中一個類所具有的方法的特徵集合,是一種邏輯上的抽象。
java介面作用:
1、利於代碼的規范
這樣做的目的一方面是為了給開發人員一個清晰的指示,告訴他們哪些業務需要實現;同時也能防止由於開發人員隨意命名而導致的命名不清晰和代碼混亂,影響開發效率。
2、有利於對代碼進行維護
可以一開始定義一個介面,把功能菜單放在介面里,然後定義類時實現這個介面,以後要換的話只不過是引用另一個類而已,這樣就達到維護、拓展的方便性。
3、保證代碼的安全和嚴密
一個好的程序一定符合高內聚低耦合的特徵,能夠讓系統的功能較好地實現,而不涉及任何具體的實現細節。這樣就比較安全、嚴密一些,這一思想一般在軟體開發中較為常見。
(5)java介面的例子擴展閱讀:
關於java介面的使用規范:
1、介面中可以定義常量,不能定義變數,介面中的屬性都是全局靜態常量,介面中的常量必須在定義時指定初始值。
2、 介面中所有的方法都是抽象方法,介面中方法都會自動用public abstract 修飾,即介面中只有全局抽象方法。
3、 介面不能實例化,介面中不能有構造。
4、 介面之間可以通過extends實現繼承關系,一個介面可以繼承多個介面,但介面不能繼承類。
5、 介面的實現類必須實現介面的全部方法,否則必須定義為抽象類。
參考資料來源:網路:java介面
Ⅵ 在Java中,介面有什麼實際點的應用最好給個例子
1.
面向對象多態的實現離不開介面,使用介面,比如說:「A類調用B類,不如調用B介面來的靈活,因為你可以使用介面來使用B1,B2等實現類交互,方便代碼的重用。
」
你在傳遞參數或返回值時,傳入A,不如將A剝離共性抽象一個A介面出來靈活,抽象之後你可以隨時替換傳入的參數(只要實現了A介面),避免了大量的改動,返回值亦同。甚至很多模式的實現也離不開介面(工廠模式等);
2.
解耦,復用等都離不開介面,抽象共性提高復用度,當然可用實體類,但是遠不如用介面或抽象類來的方便,用介面抽象共性,用具體類實現個性,可以很大程度上解耦,和提高復用度,解耦可以方便修改維護,提高復用可以減少成本!
多重繼承只有介面能實現.
介面還有標識(裡面沒有任何方法,如Remote介面)和數據共享(裡面的變數全是常量)的作用.
Ⅶ 關於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();
}
}
Ⅷ java中的介面到底怎麼用 怎麼理解啊 舉個簡單例子
Java中的介面是一系列方法的聲明,是一些方法特徵的集合,一個介面只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。 介面的兩種含義:一,Java介面,Java語言中存在的結構,有特定的語法和結構;二,一個類所具有的方法的特徵集合,是一種邏輯上的抽象。前者叫做「Java介面」,後者叫做「介面」。
Ⅸ 誰能給我舉兩個java介面的列子。
你的PC機上,USB介面是干什麼用的?
不管你用的是什麼外連設備,都必須支持這個USB介面才能連到你的電腦上,至於外部設備的細節,主版廠商是不會關心的.
比如你寫資料庫程序,MySQL,
Oracle等,不同的資料庫廠商,都有不同的技術標准,語法上也有差異,你寫一個程序只能針對某一個資料庫,為了解決這個問題Java給出了連接資料庫介面JDBC,使程序員不必關心不同資料庫的內部細節,只要找到實現了JDBC中介面的類就可以進行資料庫連接了,而這些類由不同的資料庫廠商自己去定義.程序員只要使用介面中定義的方法就可以了.
JAVA中介面只關心功能,只要一個類去實現了這個介面,就可以通過介面調去這個類去使用介面中定義的功能.即,方法.這些功能是怎麼實現的,使用者不必去關心.JAVA不支持多重繼承,因為那樣會使類與類之間的結構不清晰,但有時需要類似功能,可以能過介面來實現,
Java中介面中的成員只有常量,和方法,其中常量是默認用public
static
final關鍵字修飾的,因此可以用介面名直接調用介面中的常量,介面中的方法是默認用public
abstract
關鍵字修飾.如查介面中定義的方法拋出異常,那麼實現這個介面的類,在定義這個方法時可以不拋出異常,但是如果拋出,就必拋出介面中方法拋出異常類的子孫類,而不能拋出介面方法定義的異常類的父類,否則會產生編譯異常
類可以實現多個介面,但不支持多重繼承,但介面是支持多重繼承的
多態可以減少代碼的重復,如在兩個類中有類似的功能即方法,可以為他們提供一個抽象父類,子類分別實現父類所定義的方法,通過父類動態的調用不同的子類,來得到這個方法的不同實現,從而減少代碼的重復,如果使用抽象類,就會改變子類的原本繼承體系,因為JAVA不支持多重繼承,而使用介面就可以達到這個要求.
Ⅹ 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();
}
}