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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java基础篇:多重继承的实现

發(fā)布時(shí)間:2024/9/30 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java基础篇:多重继承的实现 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

多重繼承指的是一個(gè)類可以同時(shí)從多于一個(gè)的父類那里繼承行為和特征,然而我們知道Java為了保證數(shù)據(jù)安全,它只允許單繼承。有些時(shí)候我們會(huì)認(rèn)為如果系統(tǒng)中需要使用多重繼承往往都是糟糕的設(shè)計(jì),這個(gè)時(shí)候我們往往需要思考的不是怎么使用多重繼承,而是您的設(shè)計(jì)是否存在問(wèn)題.但有時(shí)候我們確實(shí)是需要實(shí)現(xiàn)多重繼承,而且現(xiàn)實(shí)生活中也真正地存在這樣的情況,比如遺傳:我們即繼承了父親的行為和特征也繼承了母親的行為和特征。可幸的是Java是非常和善和理解我們的,它提供了兩種方式讓我們曲折來(lái)實(shí)現(xiàn)多重繼承:接口和內(nèi)部類。

一、接口:

在介紹接口和抽象類的時(shí)候了解到子類只能繼承一個(gè)父類,也就是說(shuō)只能存在單一繼承,但是卻可以實(shí)現(xiàn)多個(gè)接口,這就為我們實(shí)現(xiàn)多重繼承做了鋪墊。

對(duì)于接口而言,有時(shí)候它所表現(xiàn)的不僅僅只是一個(gè)更純粹的抽象類,接口是沒(méi)有任何具體實(shí)現(xiàn)的,也就是說(shuō),沒(méi)有任何與接口相關(guān)的存儲(chǔ),因此也就無(wú)法阻止多個(gè)接口的組合了。

interface CanFight {void fight(); }interface CanSwim {void swim(); }interface CanFly {void fly(); }public class ActionCharacter {public void fight(){} }public class Hero extends ActionCharacter implements CanFight,CanFly,CanSwim{public void fly() {}public void swim() {}/*** 對(duì)于fight()方法,繼承父類的,所以不需要顯示聲明*/ }

二、內(nèi)部類:

上面使用接口實(shí)現(xiàn)多重繼承是一種比較可行和普遍的方式,在介紹內(nèi)部類的時(shí)候談到內(nèi)部類使的多繼承的實(shí)現(xiàn)變得更加完美了,同時(shí)也明確了如果父類為抽象類或者具體類,那么我就僅能通過(guò)內(nèi)部類來(lái)實(shí)現(xiàn)多重繼承了。如何利用內(nèi)部類實(shí)現(xiàn)多重繼承,請(qǐng)看下面實(shí)例:兒子是如何利用多重繼承來(lái)繼承父親和母親的優(yōu)良基因。

首先是父親Father和母親Mother:

public class Father {public int strong(){return 9;} }public class Mother {public int kind(){return 8;} }

??重頭戲在這里,兒子類Son:

public class Son {/*** 內(nèi)部類繼承Father類*/class Father_1 extends Father{public int strong(){return super.strong() + 1;}}class Mother_1 extends Mother{public int kind(){return super.kind() - 2;}}public int getStrong(){return new Father_1().strong();}public int getKind(){return new Mother_1().kind();} }

測(cè)試程序:

public class Test1 {public static void main(String[] args) {Son son = new Son();System.out.println("Son 的Strong:" + son.getStrong());System.out.println("Son 的kind:" + son.getKind());}} ---------------------------------------- Output: Son 的Strong:10 Son 的kind:6

兒子繼承了父親,變得比父親更加強(qiáng)壯,同時(shí)也繼承了母親,只不過(guò)溫柔指數(shù)下降了。這里定義了兩個(gè)內(nèi)部類,他們分別繼承父親Father類、母親類Mother類,且都可以非常自然地獲取各自父類的行為,這是內(nèi)部類一個(gè)重要的特性:內(nèi)部類可以繼承一個(gè)與外部類無(wú)關(guān)的類,保證了內(nèi)部類的獨(dú)立性,正是基于這一點(diǎn),多重繼承才會(huì)成為可能。

總結(jié)

以上是生活随笔為你收集整理的Java基础篇:多重继承的实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。