java繼承和組合
阿新 • • 發佈:2019-01-03
要實現的目標:鳥(Bird)和狼(Wolf)都是動物(Animal),動物都有心跳(beat()),會呼吸(beat()),但是鳥會fly(fly()),狼會奔跑(run()),用java程式實現以上描述。
InheritTest.java 使用繼承方式實現目標CompositeTest.java 使用組合方式實現目標
- //InheritTest.java 使用繼承方式實現目標
- class Animal{
- privatevoid beat(){
- System.out.println("心臟跳動...");
- }
- publicvoid breath(){
- beat();
- System.out.println("吸一口氣,呼一口氣,呼吸中...");
- }
- }
- //繼承Animal,直接複用父類的breath()方法
- class Bird extends Animal{
- //建立子類獨有的方法fly()
- publicvoid fly(){
- System.out.println("我是鳥,我在天空中自由的飛翔...");
- }
- }
- //繼承Animal,直接複用父類的breath()方法
- class Wolf extends Animal{
- //建立子類獨有的方法run()
- publicvoid run(){
- System.out.println("我是狼,我在草原上快速奔跑...");
- }
- }
- publicclass InheritTest{
- publicstaticvoid main(String[] args){
- //建立繼承自Animal的Bird物件新例項b
- Bird b=new Bird();
- //新物件例項b可以breath()
- b.breath();
- //新物件例項b可以fly()
- b.fly();
- Wolf w=new
- w.breath();
- w.run();
- /*
- ---------- 執行Java程式 ----------
- 心臟跳動...
- 吸一口氣,呼一口氣,呼吸中...
- 我是鳥,我在天空中自由的飛翔...
- 心臟跳動...
- 吸一口氣,呼一口氣,呼吸中...
- 我是狼,我在草原上快速奔跑...
- 輸出完畢 (耗時 0 秒) - 正常終止
- */
- }
- }
- //CompositeTest.java 使用組合方式實現目標
- class Animal{
- privatevoid beat(){
- System.out.println("心臟跳動...");
- }
- publicvoid breath(){
- beat();
- System.out.println("吸一口氣,呼一口氣,呼吸中...");
- }
- }
- class Bird{
- //定義一個Animal成員變數,以供組合之用
- private Animal a;
- //使用建構函式初始化成員變數
- public Bird(Animal a){
- this.a=a;
- }
- //通過呼叫成員變數的固有方法(a.breath())使新類具有相同的功能(breath())
- publicvoid breath(){
- a.breath();
- }
- //為新類增加新的方法
- publicvoid fly(){
- System.out.println("我是鳥,我在天空中自由的飛翔...");
- }
- }
- class Wolf{
- private Animal a;
- public Wolf(Animal a){
- this.a=a;
- }
- publicvoid breath(){
- a.breath();
- }
- publicvoid run(){
- System.out.println("我是狼,我在草原上快速奔跑...");
- }
- }
- publicclass CompositeTest{
- publicstaticvoid main(String[] args){
- //顯式建立被組合的物件例項a1
- Animal a1=new Animal();
- //以a1為基礎組合出新物件例項b
- Bird b=new Bird(a1);
- //新物件例項b可以breath()
- b.breath();
- //新物件例項b可以fly()
- b.fly();
- Animal a2=new Animal();
- Wolf w=new Wolf(a2);
- w.breath();
- w.run();
- /*
- ---------- 執行Java程式 ----------
- 心臟跳動...
- 吸一口氣,呼一口氣,呼吸中...
- 我是鳥,我在天空中自由的飛翔...
- 心臟跳動...
- 吸一口氣,呼一口氣,呼吸中...
- 我是狼,我在草原上快速奔跑...
- 輸出完畢 (耗時 0 秒) - 正常終止
- */
- }
- }