A. 使用內部類讓java實現「多繼承」
使用內部類讓Java實現 多繼承
眾所周知 Java沒有像c++那樣支持多繼承 但是我們可以使用介面或內部類來模擬實現多繼承
我們使用內部類來實現一個繼承自消費者笑禪 又繼承自生產者的派生類
實際上Java之所以設計出內部類這個概念 一方面是為了更好的封裝性 另一方面就是藉助內部類模擬實現多繼承
首先我們定義一個消費者抽象基類
view plainprint?
/** * Consumer Class *@author androidyue *Last Modified 上午 */ public abstract class Consumer { protected float buyPrice protected abstract void buyGoods() }
跡升吵以下是生產者抽象基類
view plainprint?
/** * Procer Class *@author androidyue *Last Modified 上午 */ public abstract class Procer { protected float cost protected abstract void proce() }
使用內部類實現 多繼承 的派生子類
view plainprint?姿侍
/** *Java實現 多繼承
*@author androidyue *Last Modified 上午 */ public class InnerClassDemo extends Procer { private ConsumerBuyer buyer
public void desribeMySelf(){ System out println( 使用Java模擬多繼承 ) this proce() this buyer=new ConsumerBuyer() this buyer buyGoods()
}
@Override protected void proce() { st= f System out println( 我是生產者 我以每件 +st+ RMB的成本生產一件產品 然後以 元價格對外出售 ) }
class ConsumerBuyer extends Consumer{
@Override protected void buyGoods() { this buyPrice= f System out println( 我是消費者 我以 +this buyPrice+ RMB 買了一件售價 元的商品 不信吧 因為我也是生產者!^_^ )
}
}
}
在程序入口調用
view plainprint?
/** * the entrance of application *@author androidyue *Last Modified 上午 */ public class AppMain { public static void main(String[] args){ InnerClassDemo demo=new InnerClassDemo() demo desribeMySelf() }
lishixin/Article/program/Java/hx/201311/25912
B. java開發的項目中模塊、包、類、介面的關系是什麼
讓我談談流程為導向,面向對象,這是兩個思想流派,他們是能夠實現的能力,使用該程序來完成一件事。
唯一的思維方式是不一樣的。
面向過程的一件事,一個項目分解成一個函數的小功能。
面向對象的事情,作為一個小對象或這些對象之間的相互關系組成的一個小部分組成,構成了整個項目。
一切是一個面向對象的思想的對象,我,你,他也是。
「類」是一個抽象的對象,或進行了總結。例如,你可以為人類總結。
整體而言,類是抽象的虛擬對象是有生命的東西。
是一個類,我你他是對象。
一般的面向對象編程方法,設計一個類,然後創建一個這個類的對象。
經過這個對象的相關業務。
點:操作的對象,對象不要緊經營。
這里談談如何設計一個類,
類有一些封裝的性質和功能。
面向過程的思想,程序通常是一個函數,這些函數的相互調用。
形成一個完整的方案來解決問題。其基本結構是:
函數()
{
......;
}
函數的兩()
{
......;
}
......
主要功能()
{
......;
}
?
?
然而,在面向對象的思想是包在一起,形成一個類。
類
{
?函數A()
?{
?......;
?}
功能二()
?{
?......;
?}
?......
}
?
?
產生一個對象,那麼這個類:從類的類名學生
方法是生成對象:學生S1;
在這里,s1是一個對象,它生產的對象可以是相關的操作。
操作方法,如:S1是函數();
等等。在這篇文章中的具體細節就不說了只說想。
這是普通的一點是,在具體實施過程中的類,然後生成一個對象,該對象來調用相關的操作。
如果在面向過程的功能封裝成類,然後對象的操作。
A類包,它通常作為一個模塊,其他類型的呼叫需要的時候。
類是一個抽象的,抽象的東西一些共同的特點,總結提出的公共部分的包一起。
包,已經上面說的,裝在一個容器內的一些性質和功能。
在這里,我用一個游戲來解釋:
假設我們想成為游戲內打怪的游戲類似,簡單,怪不要打,只有玩的人。
他的血液不斷減少,直至死亡。
所有的怪物在抽象的共同特點,所以我們得到了一個類:怪物
級怪物
{
??炭怪物名稱;
?血液;
?怪物(怪物N,血列印)/ *構造函數* /
?{
怪物的名字嗎?=怪物名稱n;
?血=血N;
?}
毒打功能(?)
?{
?血液減少;
?}
?判斷功能()
?{
?(血== 0)
?輸出(「你贏了!」);
?}
?玩游戲()
?{
?(血> 0)
?{
?毒打函數();
??判斷函數();
?}
?}
}
?
在這樣一個怪物類屬性的定義:怪物名稱,血液和功能:結構毆打,確定
根據這種情況,可以產生一個對象。
一個類可以有任意數量的對象,區分這些對象,取決於構造函數。
讓我們繼續寫我們的計劃
主要的主要功能
無效的主要()
{
/ ******對象產生****** /?
?怪物怪物(「狼來了」,5000);
?怪物怪物(「老虎」,8000);
怪物怪物(「蛇」,3000);
開始我們的游戲?/ **為了幾個對象** /
?怪物玩游戲();
?怪物玩游戲();
?怪物玩游戲();
}
?
然後主要的功能,我們已經建立了三個對象,它們共享一個類。
可以看到,類相當於一個組件,模塊,我們需要建立它的對象,將是能夠實現他的功率封裝
可以。
這是面向對象的優點,可重復使用,不必每一個用於重寫。
盡管如此,感覺,還是沒有說明白,真的有點只能意味著說不出的感覺。
事實上,如果這本書,真正認真寫了一些東西,他們可以理解,感到無形的。
C. Java中繼承和實現的區別
java中的繼承用的關鍵字是extends,而實現用的關鍵字是implements;java中類的繼承只能是單繼承,而實現可以是多實現。java中的繼承可以繼承父類的所有方法。