中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

消防做設(shè)計有什么網(wǎng)站無錫網(wǎng)站建設(shè)優(yōu)化公司

消防做設(shè)計有什么網(wǎng)站,無錫網(wǎng)站建設(shè)優(yōu)化公司,網(wǎng)站外部推廣,公眾號開發(fā)者密碼怎么獲得前言 本篇會講到Java中接口內(nèi)容,概念和注意點可能比較多,需要耐心多看幾遍,我盡可能的使用經(jīng)典的例子幫助大家理解~ 歡迎關(guān)注個人主頁:逸狼 創(chuàng)造不易,可以點點贊嗎~ 如有錯誤,歡迎指出~ 目錄 前言 接口 語法…

前言

本篇會講到Java中接口內(nèi)容,概念和注意點可能比較多,需要耐心多看幾遍,我盡可能的使用經(jīng)典的例子幫助大家理解~

歡迎關(guān)注個人主頁:逸狼


創(chuàng)造不易,可以點點贊嗎~

如有錯誤,歡迎指出~



目錄

前言

接口

語法

注意

?代碼理解

接口運用舉例

IUSB接口

KeyBoard類

Mouse類

Computer類

多個接口

代碼理解(語法層面)

接口解決多繼承問題 代碼示例

Animal類

IFly、IRunning、ISwimming接口

Fish類

Duck類

再加上一個測試

接口間的繼承

代碼理解


接口

接口是公共的行為規(guī)范標準,在Java中,接口是多個類的公共規(guī)范,是一種引用數(shù)據(jù)類型。

語法

  1. 定義格式與類基本相同,將class關(guān)鍵字換成interface關(guān)鍵字
  2. 接口中的成員變量(習慣上是大寫)默認為public static final 修飾的(寫的時候可省略public static final),必須被初始化
  3. 接口中的方法默認只能是public abstract 修飾的(也可省略不寫,不寫默認也是抽象方法(不能有具體的實現(xiàn),否則會報錯),用其他修飾符會報錯)
  4. 接口中使用default修飾的方法static修飾的方法是可以有具體的實現(xiàn)
  5. 接口中不能有靜態(tài)代碼塊、示例代碼塊構(gòu)造方法。
  6. 接口雖然不是類,但編譯完成后也是字節(jié)碼文件(后綴名是.class)。

注意

  • 創(chuàng)建接口時, 接口的命名一般以大寫字母 I 開頭
  • 接口的命名一般使用 "形容詞" 詞性的單詞.
  • 阿里編碼規(guī)范中約定, 接口中的方法和屬性不要加任何修飾符號, 保持代碼的簡潔性.

?代碼理解

package demo2inter;public interface ITestInterFace {public static final int a=100;int AGE=10;abstract public void fun1();void fun2();default void func(){System.out.println("default!");}public static void staticFunc(){System.out.println("staticFunc!");}
}

接口的簡單使用

  1. 接口不能被實例化
  2. 接口需要被類實現(xiàn),需要使用關(guān)鍵字implements來實現(xiàn)
  3. 當一個類實現(xiàn)類這個接口,那么這個類要重寫這個方法
  4. 接口也可以發(fā)生向上轉(zhuǎn)型、動態(tài)綁定和多態(tài)。

public interface ITestInterFace {void draw();}
class Rect implements ITestInterFace{@Overridepublic void draw() {System.out.println("畫一個矩形!");}
}
class Triangle implements ITestInterFace{@Overridepublic void draw() {System.out.println("畫一個三角形!");}
}
class Test{public static void drawMap(ITestInterFace iTestInterFace){iTestInterFace.draw();}public static void main(String[] args) {drawMap(new Rect());//發(fā)生了向上轉(zhuǎn)型和動態(tài)綁定drawMap(new Triangle());}
}

接口運用舉例

請實現(xiàn)筆記本電腦使用USB鼠標、USB鍵盤的例子

  1. USB接口:包含打開設(shè)備、關(guān)閉設(shè)備功能
  2. 筆記本類:包含開機功能、關(guān)機功能、使用USB設(shè)備功能
  3. 鼠標類:實現(xiàn)USB接口,并具備點擊功能
  4. 鍵盤類:實現(xiàn)USB接口,并具備輸入功能

在包demo3中,創(chuàng)建3個類,一個接口

IUSB接口

package demo3;public interface IUSB {// USB接口void openDevice();//打開服務void closeDevice();//關(guān)閉服務}

KeyBoard類

package demo3;public class KeyBoard implements IUSB {@Overridepublic void openDevice() {System.out.println("打開鍵盤!");}@Overridepublic void closeDevice() {System.out.println("關(guān)閉鍵盤!");}public void input(){System.out.println("鍵盤輸入!");}
}

Mouse類

package demo3;public class Mouse implements IUSB{@Overridepublic void openDevice() {System.out.println("打開鼠標!");}@Overridepublic void closeDevice() {System.out.println("關(guān)閉鼠標!");}public void click(){System.out.println("點擊鼠標!");}
}

Computer類

package demo3;import demo2inter.ITestInterFace;public class Computer {public void powerOff (){System.out.println("關(guān)閉電腦!");}public void powerOn(){System.out.println("打開電腦!");}public void useDevice(IUSB usb){usb.openDevice();//這里要區(qū)分 USB引用了哪個對象if(usb instanceof Mouse){Mouse mouse =(Mouse) usb;//向下轉(zhuǎn)型mouse.click();}//調(diào)用鍵盤if(usb instanceof KeyBoard){KeyBoard keyBoard=(KeyBoard) usb;keyBoard.input();}usb.closeDevice();}public static void main(String[] args) {Computer computer=new Computer();computer.powerOn();computer.useDevice(new KeyBoard());//向上轉(zhuǎn)型computer.useDevice(new Mouse());computer.powerOff();}
}

多個接口

Java中不支持多繼承,但是一個類可以實現(xiàn)多個接 口。接口表達含義是 具有**特性,可以幫助程序員忘掉類型,只關(guān)注特性。

代碼理解(語法層面)

類TestDemo4實現(xiàn)了IA和IB接口

package demo4;//多個接口
interface IA{void testA();
}
interface IB{void testB();
}
class TestDemo4 implements IA,IB{@Overridepublic void testA() {System.out.println("testA()");}@Overridepublic void testB() {System.out.println("testB()");}
}
public class Test4 {public static void main(String[] args) {TestDemo4 testDemo4=new TestDemo4();testDemo4.testA();testDemo4.testB();}}

接口解決多繼承問題 代碼示例

在demomoreinher包中有Animal抽象類,Duck,Fish類 以及IFly、IRunning、ISwimming接口

Animal類

IFly、IRunning、ISwimming等動物特性應該采用接口方式

package demomoreinher;public abstract class Animal {protected String name;protected int age;public Animal(String name, int age) {this.name = name;this.age = age;}public abstract void eat();//像跑 游泳 飛等動作不能寫在這里,因為不是所有動物都會這些技能  應該寫在接口中
}

IFly、IRunning、ISwimming接口

//注意:這里的代碼是在不同IFly、IRunning、ISwimming接口文件中的
public interface IFly {void fly();
}public interface IRunning {void run();
}public interface ISwimming {void swim();
}

Fish類

魚只會游泳這項特性,所以接口ISwimming

package demomoreinher;public class Fish extends Animal implements ISwimming{//如果這里游泳寫出類,java是不支持多繼承的,所有說接口解決了多繼承問題public Fish(String name, int age) {super(name, age);}@Overridepublic void eat() {System.out.println(this.name+"吃魚糧!");}@Overridepublic void swim() {System.out.println(this.name+"游泳~");}
}

Duck類

而鴨子游泳,跑,飛這3個技能都會,所以三個特性都接上

package demomoreinher;public class Duck extends Animal implements ISwimming,IFly,IRunning{public Duck(String name, int age) {super(name, age);}@Overridepublic void eat() {System.out.println(this.name+"吃鴨糧!");}@Overridepublic void fly() {System.out.println(this.name+"飛~~~");}@Overridepublic void run() {System.out.println(this.name+"跑~~~");}@Overridepublic void swim() {System.out.println(this.name+"游泳~~~");}
}

再加上一個測試

package demomoreinher;public class TestAnimal {public static void eatFunc(Animal animal){animal.eat();//實現(xiàn)eat的動態(tài)綁定}public static void walk(IRunning running){running.run();//實現(xiàn)跑的動態(tài)綁定}public static void main(String[] args) {walk(new Duck("唐老鴨",3));eatFunc(new Fish("靈兒",2));}
}

測試結(jié)果

接口間的繼承

相當于將接口合并在一起了

代碼理解

IC繼承了IA和IB,使IC接口的功能包含了IA和IB的功能,當然類TestDeme在實現(xiàn)接口IC時,要將IA,IB和IC的方法一起都要重寫

package demo5;//接口繼承問題
interface IA{void testA();
}
interface IB{void testB();
}
//IC接口不僅具備了自己的testC這個功能,還 擴展 了IA和IB的功能
interface IC extends IA,IB{void testC();}
class TestDemo implements IC{@Overridepublic void testA() {System.out.println("testA()");}@Overridepublic void testB() {System.out.println("testB()");}@Overridepublic void testC() {System.out.println("testC()");}
}

http://www.risenshineclean.com/news/29384.html

相關(guān)文章:

  • 做美女網(wǎng)站賺錢千峰培訓可靠嗎?
  • 媒體公關(guān)廈門谷歌seo
  • 網(wǎng)絡公司開發(fā)網(wǎng)站今日nba數(shù)據(jù)帝
  • 免費企業(yè)建站開源系統(tǒng)企業(yè)培訓師資格證
  • html5網(wǎng)站編寫青島網(wǎng)站制作推廣
  • 網(wǎng)站可以做無形資產(chǎn)嗎優(yōu)化網(wǎng)站排名需要多少錢
  • 云表無代碼開發(fā)平臺baike seotl
  • 網(wǎng)站備案值得嗎打廣告的免費軟件
  • 專業(yè)做化妝品的網(wǎng)站在線生成html網(wǎng)頁
  • 怎么做淘寶客網(wǎng)站做淘客拼多多代運營一般多少錢
  • 佰匯康網(wǎng)站建設(shè)河南seo快速排名
  • 南京網(wǎng)站建設(shè)案例蘇州做網(wǎng)站哪家比較好
  • 嘉興網(wǎng)站制作軟件如何做一個網(wǎng)站
  • 有沒有幫人做簡歷的網(wǎng)站營銷型網(wǎng)站和普通網(wǎng)站
  • 只做襯衣網(wǎng)站百度seo排名優(yōu)化技巧分享
  • 帝國cms企業(yè)網(wǎng)站模板網(wǎng)站優(yōu)化方案案例
  • 怎么做網(wǎng)站能夠增加人氣鏈接提交入口
  • 政府網(wǎng)站建設(shè)方案范文—工作方案seo專員崗位職責
  • wordpress文章審核發(fā)郵件國內(nèi)seo公司
  • 高端做網(wǎng)站哪家好臨沂seo
  • 人大兩學一做專題網(wǎng)站深圳營銷型網(wǎng)站開發(fā)
  • 建應用網(wǎng)站百度pc網(wǎng)頁版
  • 網(wǎng)站格式圖片全國唯一一個沒有疫情的城市
  • 杭州 網(wǎng)站建設(shè)seo引擎優(yōu)化方案
  • 淘寶客網(wǎng)站怎么做推廣windows優(yōu)化大師要會員
  • 無錫大型網(wǎng)站建設(shè)公司公司網(wǎng)頁制作需要多少錢
  • 經(jīng)營閱讀網(wǎng)站需要怎么做排名優(yōu)化方法
  • 建設(shè)政府網(wǎng)站的目的意義百度推廣每年600元什么費用
  • 做調(diào)查賺錢的網(wǎng)站有哪些南寧優(yōu)化網(wǎng)站收費
  • 種植園網(wǎng)站模板無錫百度正規(guī)推廣