97色伦色在线综合视频,无玛专区,18videosex性欧美黑色,日韩黄色电影免费在线观看,国产精品伦理一区二区三区,在线视频欧美日韩,亚洲欧美在线中文字幕不卡

怎么做一個(gè)論壇網(wǎng)站做網(wǎng)站的公司都有哪些業(yè)務(wù)

鶴壁市浩天電氣有限公司 2026/01/24 14:12:52
怎么做一個(gè)論壇網(wǎng)站,做網(wǎng)站的公司都有哪些業(yè)務(wù),聊城網(wǎng)絡(luò)公司,網(wǎng)站信息填寫(xiě)要求#JAVA筆記#抽象類(lèi)定義抽象類(lèi)與普通類(lèi)基本類(lèi)似#xff0c;唯一的區(qū)別在于使用abstract關(guān)鍵字修飾#xff0c;且類(lèi)中有未實(shí)現(xiàn)#xff08;沒(méi)有方法體#xff09;的抽象方法#xff08;abstract修飾#xff09;。抽象方法必須位于抽象類(lèi)中#xff0c;抽象方法只能訪問(wèn)抽象成…#JAVA筆記#抽象類(lèi)定義抽象類(lèi)與普通類(lèi)基本類(lèi)似唯一的區(qū)別在于使用abstract關(guān)鍵字修飾且類(lèi)中有未實(shí)現(xiàn)沒(méi)有方法體的抽象方法abstract修飾。抽象方法必須位于抽象類(lèi)中抽象方法只能訪問(wèn)抽象成員。目的在于當(dāng)一些方法不知道該如何實(shí)現(xiàn)時(shí)可以采用抽象類(lèi)具體的實(shí)現(xiàn)交給其子類(lèi)實(shí)現(xiàn)。所以繼承抽象類(lèi)的子類(lèi)必須實(shí)現(xiàn)其抽象方法除非該子類(lèi)也為抽象類(lèi)。特點(diǎn)1、抽象類(lèi)不能被實(shí)例化2、抽象類(lèi)可以沒(méi)有abstract方法但是一旦包含了abstract方法該類(lèi)必須為抽象類(lèi)。3、abstract只能修飾方法和類(lèi)不能修飾屬性和其他。4、抽象類(lèi)本質(zhì)還是類(lèi)可以有類(lèi)的所有成員。5、抽象方法不能使用private、final、static修飾因?yàn)槌橄蠓椒ū仨毐蛔宇?lèi)重寫(xiě)這些關(guān)鍵字和重寫(xiě)違背。抽象類(lèi)的作用抽象類(lèi)的主要作用在于統(tǒng)一規(guī)范、代碼復(fù)用和增強(qiáng)設(shè)計(jì)清晰度。1、在抽象類(lèi)中聲明一個(gè)抽象方法相當(dāng)于向所有子類(lèi)發(fā)布了一個(gè)“契約”或“規(guī)范”。2、統(tǒng)一接口促進(jìn)代碼復(fù)用。抽象方法為一系列相關(guān)的子類(lèi)定義了一個(gè)統(tǒng)一的額借口所有子類(lèi)必須使用相同的名稱(chēng)、參數(shù)、返回值實(shí)現(xiàn)。如果多個(gè)子類(lèi)有共同的屬性和行為這些共性可以提取到父類(lèi)從而實(shí)現(xiàn)了代碼的高效復(fù)用。3、設(shè)計(jì)意圖更清晰。抽象方法本身就是一種文檔它清晰告訴開(kāi)發(fā)者這里有一個(gè)關(guān)鍵的行為需要被實(shí)現(xiàn)子類(lèi)必須關(guān)注它。4、便于維護(hù)和擴(kuò)展。當(dāng)需要為系統(tǒng)添加子類(lèi)時(shí)抽象方法確保了新類(lèi)會(huì)遵循既定的規(guī)范。如果需要修改規(guī)范只需要修改抽象類(lèi)中的方法聲明所有的子類(lèi)都會(huì)在編譯時(shí)收到提醒需要相應(yīng)地更新其實(shí)現(xiàn)。使用場(chǎng)景——模版設(shè)計(jì)模式抽象類(lèi)-統(tǒng)計(jì)耗時(shí)package com.hspedu.abstract1_; import java.util.Date; // 1、定義抽象類(lèi) public abstract class Template { //定義模版統(tǒng)計(jì)代碼耗時(shí)——使用抽象類(lèi)繼承它的子類(lèi)實(shí)現(xiàn)其方法 public void calculate(){ long startSystem.currentTimeMillis(); job(); long endSystem.currentTimeMillis(); System.out.println(代碼耗時(shí)為:(end-start)); } public abstract void job(); }子類(lèi)-實(shí)現(xiàn)具體業(yè)務(wù)package com.hspedu.abstract1_; public class CodeTest extends Template{ private StringBuffer sbnew StringBuffer(); Override public void job() { for(int i0;i800000;i){ sb.append(a); } } }main方法—原理多態(tài)動(dòng)態(tài)綁定機(jī)制多態(tài)ct編譯類(lèi)型為父類(lèi)Template運(yùn)行類(lèi)型為子類(lèi)CodeTest動(dòng)態(tài)綁定調(diào)用統(tǒng)計(jì)耗時(shí)的方法calculate()使會(huì)調(diào)用job()方法此時(shí)根據(jù)動(dòng)態(tài)綁定機(jī)制會(huì)根據(jù)運(yùn)行類(lèi)型調(diào)用子類(lèi)的job(方法。package com.hspedu.abstract1_; public class Test { public static void main(String[] args) { Template ctnew CodeTest(); ct.calculate(); } }接口定義接口包含屬性和一系列未實(shí)現(xiàn)的方法。接口中有抽象方法、靜態(tài)方法、默認(rèn)方法三種。jdk7.0之前接口中所有方法默認(rèn)都是抽象方法即沒(méi)有方法體默認(rèn)有abstract修飾jdk8.0之后幾口可以有靜態(tài)方法static關(guān)鍵字修飾和默認(rèn)方法default關(guān)鍵字修飾可以有方法的具體實(shí)現(xiàn)。特點(diǎn)1、接口不能被實(shí)例化。2、接口中所有的方法是public方法接口中的抽象方法可以不用寫(xiě)abstract。3、一個(gè)普通類(lèi)實(shí)現(xiàn)接口就必須實(shí)現(xiàn)接口中的所有方法。4、抽象類(lèi)實(shí)現(xiàn)接口可以不用實(shí)現(xiàn)接口的方法。5、一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口。6、接口中的屬性都是public static final修飾的且必須要初始化。int a1,等價(jià)于 public static final int a1。所以接口中的屬性多數(shù)是一些靜態(tài)常量。訪問(wèn)方式接口名.屬性名。7、一個(gè)接口不能繼承其他類(lèi)但是可以繼承多個(gè)接口。如 interface A extends B,C{}8、接口的修飾符只能有public和默認(rèn)和類(lèi)的修飾符一樣。9、接口與接口之間是繼承關(guān)系類(lèi)和接口之間是實(shí)現(xiàn)關(guān)系。10、一個(gè)類(lèi)只能繼承一個(gè)父類(lèi)但可以實(shí)現(xiàn)多個(gè)接口。如小猴子的父親只能是猴子父類(lèi)其出生就帶有猴子的一些特性能夠自然使用但是小猴子如果想像鳥(niǎo)意向飛翔魚(yú)一樣游泳就需要實(shí)現(xiàn)鳥(niǎo)的飛翔功能魚(yú)的游泳功能等等接口。所以子類(lèi)繼承了父類(lèi)就自動(dòng)擁有父類(lèi)的功能如果子類(lèi)需要擴(kuò)展功能可以通過(guò)實(shí)現(xiàn)接口的方式擴(kuò)展。11、當(dāng)子類(lèi)中有變量x且父類(lèi)中有變量x接口中有常量x對(duì)應(yīng)同名屬性訪問(wèn)時(shí)要具體指定訪問(wèn)哪一個(gè)。訪問(wèn)父類(lèi)的——super.x,訪問(wèn)接口的——接口名.x訪問(wèn)子類(lèi)本身的——this.x多態(tài)1、多態(tài)參數(shù)package com.hspedu.Interface3_; //主函數(shù) public class PolyParam { public static void main(String[] args) { UsbInterface phonenew Phone();//多態(tài)向上轉(zhuǎn)型 Computer computer new Computer(); computer.getConn(phone); } } //接口 interface UsbInterface{ void usbCon(); } //手機(jī)子類(lèi)實(shí)現(xiàn)接口 class Phone implements UsbInterface{ Override public void usbCon() { System.out.println(手機(jī)usb接口); } } //電腦類(lèi) class Computer{ public void getConn(UsbInterface usbInterface){//多態(tài)參數(shù)電腦連接手機(jī)-手機(jī)實(shí)現(xiàn)usb接口功能電腦通過(guò)接收手機(jī)實(shí)例連接手機(jī)。 usbInterface.usbCon();//動(dòng)態(tài)綁定 } }2、多態(tài)數(shù)組package com.hspedu.Interface3_; public class PolyArray { public static void main(String[] args) { //案例給USB數(shù)組中存放Phone和相機(jī)對(duì)象phone類(lèi)有一個(gè)特殊call方法 // 請(qǐng)遍歷Usb數(shù)組如果是phone對(duì)象除了調(diào)用Usb接口定義的方法外 // 還需要調(diào)用phone特有的call方法。 //創(chuàng)建多態(tài)數(shù)組引用指向多個(gè)子類(lèi)對(duì)象 UsbInterface2[] usbInterface2new UsbInterface2[6]; usbInterface2[0]new Phone2(); usbInterface2[1] new Phone2(); usbInterface2[2] new Phone2(); usbInterface2[3] new Phone2(); usbInterface2[4] new Camare(); usbInterface2[5] new Camare(); for(UsbInterface2 u:usbInterface2){ u.usbCon();//動(dòng)態(tài)綁定 if(u instanceof Phone2){ ((Phone2) u).call(); } } } } //接口 interface UsbInterface2{ void usbCon(); } //手機(jī)類(lèi)實(shí)現(xiàn)接口增加call()方法 class Phone2 implements UsbInterface2{ Override public void usbCon() { System.out.println(手機(jī)usb接口); } public void call(){ System.out.println(使用打電話功能); } } //相機(jī)類(lèi)實(shí)現(xiàn)接口 class Camare implements UsbInterface2{ Override public void usbCon() { System.out.println(相機(jī)usb接口); } }3、動(dòng)態(tài)傳遞如果接口A繼承了接口C,而子類(lèi)D實(shí)現(xiàn)了接口A相當(dāng)于也實(shí)現(xiàn)了接口C所以A、C的引用都可以指向子類(lèi)D的實(shí)例。使用場(chǎng)景接口的主要作用是實(shí)現(xiàn)代碼的規(guī)范性和復(fù)用性。如上層設(shè)計(jì)人員可以定義一些接口控制軟件的規(guī)范如統(tǒng)一命名、統(tǒng)一需實(shí)現(xiàn)的功能下層實(shí)現(xiàn)人員統(tǒng)一實(shí)現(xiàn)。例如接口package com.hspedu.Interface3_; public interface DBInterface { //定義接口實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接的統(tǒng)一管理 public void connect();//默認(rèn)abstract public void close(); }子類(lèi)package com.hspedu.Interface3_; public class MysqlConn implements DBInterface{ Override public void connect() { System.out.println(建立MYSQL數(shù)據(jù)庫(kù)連接); } Override public void close() { System.out.println(關(guān)閉MYSQL數(shù)據(jù)庫(kù)連接); } }package com.hspedu.Interface3_; public class OracleConn implements DBInterface{ Override public void connect() { System.out.println(建立Oracle數(shù)據(jù)庫(kù)連接); } Override public void close() { System.out.println(關(guān)閉Oracle數(shù)據(jù)庫(kù)連接); } }main方法注意此處多態(tài)和動(dòng)態(tài)綁定的使用。package com.hspedu.Interface3_; public class Test { public static void main(String[] args) { //創(chuàng)建子類(lèi)的實(shí)例對(duì)象 MysqlConn mysqlConnnew MysqlConn(); conn(mysqlConn); OracleConn oracleConnnew OracleConn(); conn(oracleConn); } //設(shè)計(jì)為static方法可以直接調(diào)用。 public static void conn(DBInterface conn){//多態(tài)使用DBInterface接口類(lèi)型接受Mysql或Oracle數(shù)據(jù)庫(kù)連接實(shí)例。 conn.connect();//動(dòng)態(tài)綁定運(yùn)行是執(zhí)行運(yùn)行類(lèi)型的代碼。 conn.close(); } }接口與繼承類(lèi)1、接口和繼承解決的問(wèn)題不同繼承的價(jià)值解決代碼復(fù)用性和可維護(hù)性。接口的價(jià)值設(shè)計(jì)設(shè)計(jì)好各種規(guī)范方法讓其他子類(lèi)去實(shí)現(xiàn)這些方法即更加靈活。2、接口比繼承更加靈活繼承是is-a的關(guān)系接口是like-a的關(guān)系3、接口在一定程度上實(shí)現(xiàn)了代碼的解耦即接口規(guī)范性動(dòng)態(tài)綁定快捷鍵實(shí)現(xiàn)所有接口方法快捷鍵alterenter鼠標(biāo)放在報(bào)錯(cuò)的地方類(lèi)名處。
版權(quán)聲明: 本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)聯(lián)系我們進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

眾籌平臺(tái)網(wǎng)站搭建小程序同步wordpress

眾籌平臺(tái)網(wǎng)站搭建,小程序同步wordpress,彩虹云商城網(wǎng)站搭建,企業(yè)信息服務(wù)平臺(tái)官網(wǎng)第一章#xff1a;Open-AutoGLM 家政服務(wù)下單引擎概述Open-AutoGLM 是一個(gè)基于大語(yǔ)言模型

2026/01/21 17:45:01

百度小程序排名臺(tái)州網(wǎng)站排名優(yōu)化

百度小程序排名,臺(tái)州網(wǎng)站排名優(yōu)化,優(yōu)化方案英語(yǔ)必修二電子版,昆山做網(wǎng)站找哪家好快速體驗(yàn) 打開(kāi) InsCode(快馬)平臺(tái) https://www.inscode.net輸入框內(nèi)輸入如下內(nèi)容#xff1

2026/01/21 18:42:02