欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

java中抽象類、抽象方法、接口與實(shí)現(xiàn)接口實(shí)例詳解

前言

10年積累的網(wǎng)站建設(shè)、網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有臺(tái)前免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

對(duì)于java中的抽象類,抽象方法,接口,實(shí)現(xiàn)接口等具體的概念就不在這里詳細(xì)的說明了,網(wǎng)上書本都有很多解釋,主要是我懶,下面通過一個(gè)例子來說明其中的精髓要點(diǎn),能不能練成絕世武功,踏上封王之路,就看自己的的啦(不要誤會(huì),我指的只是我自己啦啦)

用接口實(shí)現(xiàn)一個(gè)簡(jiǎn)單的計(jì)算器

1、利用接口做參數(shù),寫個(gè)計(jì)算器,能完成+-*/運(yùn)算

(1)定義一個(gè)接口Compute含有一個(gè)方法int computer(int n,int m);

(2)設(shè)計(jì)四個(gè)類分別實(shí)現(xiàn)此接口,完成+-*/運(yùn)算

(3)設(shè)計(jì)一個(gè)類UseCompute,含有方法: public void useCom(Compute com, int one, int two)

       此方法要求能夠:

           * 1.用傳遞過來的對(duì)象調(diào)用computer方法完成運(yùn)算

           * 2.輸出運(yùn)算的結(jié)果

(4)設(shè)計(jì)一個(gè)測(cè)試類,調(diào)用UseCompute中的方法useCom來完成+-*/運(yùn)算

//父類.并且使用用接口
package cn.yjlblog.wwww;

public interface Compute {
 int computer(int n,int m);//抽象方法,勝率abstract ,public


}
//子類add 實(shí)現(xiàn)加法運(yùn)算
package cn.yjlblog.wwww;

public class add implements Compute{

 @Override //接口的實(shí)現(xiàn)類和抽象類的子類是一樣的,要想可以使用new 一個(gè)對(duì)象,就必須對(duì)“抽象類”里的方法
   //進(jìn)行重寫
 public int computer(int n, int m) {
  // TODO Auto-generated method stub
  return n+m;
 }


}
package cn.yjlblog.wwww;
//子類subtract 實(shí)現(xiàn)減法運(yùn)算
public class subtract implements Compute{

 @Override
 public int computer(int n, int m) {
  // TODO Auto-generated method stub
  return n-m;
 }

}
子類multiplied 實(shí)現(xiàn)乘法運(yùn)算
package cn.yjlblog.wwww;

public class multiplied implements Compute{

 @Override
 public int computer(int n, int m) {
  // TODO Auto-generated method stub
  return n*m;
 }


}
package cn.yjlblog.wwww;
//子類divided 實(shí)現(xiàn)整除運(yùn)算
public class divided implements Compute{

 @Override
 public int computer(int n, int m) {
  // TODO Auto-generated method stub
  return n/m;
 }


}
//應(yīng)用類UseComepute 用來
package cn.yjlblog.wwww;

public class UseComepute {
 public void useCom(Compute com,int one,int two){
  int x = com.computer(one, two);
  System.out.println("運(yùn)算結(jié)果為:"+x);

 }


}
//測(cè)試類Test
package cn.yjlblog.wwww;

public class Test {
 public static void main(String[] args) {
  UseComepute uc = new UseComepute();//應(yīng)用類生成對(duì)象,使用useCome 方法
  int one = 10;
  int two = 20;
  Compute ad = new add();//接口的多態(tài)
  Compute sub = new subtract();
  Compute mul= new multiplied();
  Compute div = new divided();
  uc.useCom(ad, one, two);
  uc.useCom(sub, one, two);
  uc.useCom(mul, one, two);
  uc.useCom(div, one, two);

  //哈哈,類的名字忘記大寫了

 }

}

為什么需要用到抽象類?

在下面這個(gè)例子中,把打印機(jī)類封裝成抽象類,把print定義成抽象類,當(dāng)HPPrinter和CannonPrinter要繼承printer類的時(shí)候,必須重寫print函數(shù)。這樣寫的好處是,每個(gè)打印機(jī)都有自己打印方式,此舉可以防止子類沒有寫明打印方式。

public abstract void Printer() {
public void open() {
system.out.print("打印機(jī)開啟");
}
public void close() {
system.out.print("打印機(jī)關(guān)閉");
}
abstract void print(); //把print方法定義為抽象方法
}

public HPPrinter extends Printer {
void print(){ //必須重寫抽象方法print() 
system.out.print("惠普打印機(jī)開始打印");
};
}

public CanonPrinter extends Printer {
void print(){ //必須重寫抽象方法print()
system.out.print("佳能打印機(jī)開始打印");
};
}

抽象類和接口區(qū)別

(一)語(yǔ)法層次

public abstract class People { //關(guān)鍵詞abstract,聲明該類為抽象類
 void Num();      
 abstract void Name();    //聲明該方法為抽象方法
}
 
Interface Person {
  void Num();
  void Name();
} 

抽象類方式中,抽象類可以擁有任意范圍的成員數(shù)據(jù),同時(shí)也可以擁有自己的非抽象方法,

但是接口方式中,它僅能夠有靜態(tài)、不能修改的成員數(shù)據(jù)(但是我們一般是不會(huì)在接口中使用成員數(shù)據(jù)),同時(shí)它所有的方法都必須是抽象的。

在某種程度上來說,接口是抽象類的特殊化。

對(duì)子類而言,它只能繼承一個(gè)抽象類(這是java為了數(shù)據(jù)安全而考慮的),但是卻可以實(shí)現(xiàn)多個(gè)接口。

(二)設(shè)計(jì)層次

1、 抽象層次不同

抽象類是對(duì)類抽象,而接口是對(duì)行為的抽象。抽象類是對(duì)整個(gè)類整體進(jìn)行抽象,包括屬性、行為,但是接口卻是對(duì)類局部(行為)進(jìn)行抽象。

2、 跨域不同

抽象類所跨域的是具有相似特點(diǎn)的類,而接口卻可以跨域不同的類。我們知道抽象類是從子類中發(fā)現(xiàn)公共部分,然后泛化成抽象類,子類繼承該父類即可,但是接口不同。實(shí)現(xiàn)它的子類可以不存在任何關(guān)系,共同之處。例如貓、狗可以抽象成一個(gè)動(dòng)物類抽象類,具備叫的方法。鳥、飛機(jī)可以實(shí)現(xiàn)飛Fly接口,具備飛的行為,這里我們總不能將鳥、飛機(jī)共用一個(gè)父類吧!所以說抽象類所體現(xiàn)的是一種繼承關(guān)系,要想使得繼承關(guān)系合理,父類和派生類之間必須存在"is-a" 關(guān)系,即父類和派生類在概念本質(zhì)上應(yīng)該是相同的。對(duì)于接口則不然,并不要求接口的實(shí)現(xiàn)者和接口定義在概念本質(zhì)上是一致的, 僅僅是實(shí)現(xiàn)了接口定義的契約而已。

3、 設(shè)計(jì)層次不同

對(duì)于抽象類而言,它是自下而上來設(shè)計(jì)的,我們要先知道子類才能抽象出父類,而接口則不同,它根本就不需要知道子類的存在,只需要定義一個(gè)規(guī)則即可,至于什么子類、什么時(shí)候怎么實(shí)現(xiàn)它一概不知。比如我們只有一個(gè)貓類在這里,如果你這是就抽象成一個(gè)動(dòng)物類,是不是設(shè)計(jì)有點(diǎn)兒過度?我們起碼要有兩個(gè)動(dòng)物類,貓、狗在這里,我們?cè)诔橄笏麄兊墓餐c(diǎn)形成動(dòng)物抽象類吧!所以說抽象類往往都是通過重構(gòu)而來的!但是接口就不同,比如說飛,我們根本就不知道會(huì)有什么東西來實(shí)現(xiàn)這個(gè)飛接口,怎么實(shí)現(xiàn)也不得而知,我們要做的就是事前定義好飛的行為接口。所以說抽象類是自底向上抽象而來的,接口是自頂向下設(shè)計(jì)出來的。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。

網(wǎng)站標(biāo)題:java中抽象類、抽象方法、接口與實(shí)現(xiàn)接口實(shí)例詳解
轉(zhuǎn)載來于:http://aaarwkj.com/article32/jesdsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)ChatGPT企業(yè)網(wǎng)站制作、用戶體驗(yàn)營(yíng)銷型網(wǎng)站建設(shè)、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
中文字幕一区二区三区不卡日日| 高清亚洲一区二区三区| jvid视频在线观看免费| 国产又粗又猛又爽黄老大爷| 中文在线中文天堂黄色片| 女同三人按摩高潮喷出| 午夜影院在线观看网站| 欧美精品在,欧美一区二区| 欧美亚洲另类激情另类的| 欧美特黄大片在线观看| 中文字幕人妻紧贴拍摄| 日本一区二区高清网址| 少妇高潮叫床免费网站在线观看| 妇女人妻丰满少妇中文字幕| 国内熟妇人妻色在线三级| 中文字幕免费不卡一区| 扒开女性毛茸茸的视频| 亚洲日本久久久午夜精品| 变态另类日韩欧美高清| 亚洲欧美中文字幕乱码| 男女裸体做爰一进一出视频| 粉嫩欧美一区二区三区| 青青草日韩视频在线观看| 免费亚洲一区二区三区| 91麻豆精品国产久久久| 黄色大片黄色大片黄色大片| 日本av电影一区二区三区四区| 国产精品一区日韩专区| 亚洲精品在线观看第一页| 粉嫩国产精品一区二区| 日本成人一区二区三区视频| 国产精品欧美久久久久久| 国产我和子的乱视频亲生| 亚洲欧美一区二区粉嫩| 国产亚洲成人精品久久| 夫妻性生活一级片视频| 国产性色精品一区二区| av天堂男人站在线观看| 午夜影院网站在线看黄| 国产精品深夜在线观看| 在线看电影亚洲一区|