日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

深入浅出谈接口(interface)和类间继承(extends)

發布時間:2025/3/20 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入浅出谈接口(interface)和类间继承(extends) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 案例:通信網絡模型

1.網絡--對應接口interface(規范) 2.手機--實現類備注:每一代手機實現一種技術接口(是否繼承上一代技術?)每一次技術升級(網絡【interface】升級,是否繼承?)


2. 代碼實現

2.1 第一代:網絡技術GRPS(接口)

實現類手機:M1,H1 - - -沒有繼承問題

接口GRPS

public interface IGPRS {void tel();//打電話void sms();//發短信 }

手機M1

public class M1 implements IGPRS {@Overridepublic void tel() {// TODO Auto-generated method stubSystem.out.println("M1 tel");}@Overridepublic void sms() {// TODO Auto-generated method stubSystem.out.println("M1 sms");}}

手機H1

public class H1 implements IGPRS{@Overridepublic void tel() {// TODO Auto-generated method stubSystem.out.println("H1 tel");}@Overridepublic void sms() {// TODO Auto-generated method stubSystem.out.println("H1 sms");}}

2.2 第二代:網絡技術3G(接口)

實現類手機:M2,H2 - - 存在繼承問題1. M2沒有繼承上一代M1的打電話和發短信技術,都是全部研發(浪費資源,增加成本,代碼體現增加了重復代碼)2. H2繼承了上一代H1的打電話和發短信技術,然后增加了新技術3G功能(節省成本,資源得到充分利用,代碼體現減少了重復代碼)

接口3G - - 繼承了IGPRS接口

減少冗余代碼

public interface I3G extends IGPRS {void netWork();//使用3G上網 }

手機M2 - - 沒有繼承

代碼重復(M2的打電話和發短信的內核技術全新研發的,沒有M1的痕跡)

//沒有繼承M1的技術,因此所有技術都需要自己研發 public class M2 implements I3G {@Overridepublic void tel() {// TODO Auto-generated method stubSystem.out.println("M2 tel");}@Overridepublic void sms() {// TODO Auto-generated method stubSystem.out.println("M2 sms");}@Overridepublic void netWork() {// TODO Auto-generated method stubSystem.out.println("M2 3G");}}

手機H2 - - 繼承了H1

減少冗余代碼(H2的打電話和發短信的內核技術還是H1 的)

//繼承了H1的技術 public class H2 extends H1 implements I3G {@Overridepublic void netWork() {// TODO Auto-generated method stubSystem.out.println("H2 3G");}}

2.3 第三代:網絡技術4G(接口)

實現類手機:M3,H3 - - 存在繼承問題M3,H3均繼承上一代手機技術。

接口4G - - 繼承3G

public interface I4G extends I3G {void video();//使用4G看視頻 }

手機M3 - - 繼承M2

public class M3 extends M2 implements I4G {@Overridepublic void video() {// TODO Auto-generated method stubSystem.out.println("M3 play video");}}

手機H3 - - 繼承H2

public class H3 extends H2 implements I4G {@Overridepublic void video() {// TODO Auto-generated method stubSystem.out.println("H3 play video");}}

結果測試

public class Person {public static void use(IGPRS phone){phone.tel();phone.sms();}public static void use(I3G phone){phone.tel();phone.sms();phone.netWork();}public static void use(I4G phone){phone.tel();phone.sms();phone.netWork();phone.video();}public static void main(String[] args) {System.out.println("---------------第一代網絡技術GPRS------------------");Person.use(new H1());Person.use(new M1());System.out.println("---------------第二代網絡技術3G------------------");Person.use(new H2());System.out.println();Person.use(new M2());System.out.println("---------------第三代網絡技術4G------------------");Person.use(new H3());System.out.println();Person.use(new M3());} }

運行結果:

總結

以上是生活随笔為你收集整理的深入浅出谈接口(interface)和类间继承(extends)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。