1. 程式人生 > >Java內部類模擬實現多繼承

Java內部類模擬實現多繼承

package com.test;

/**
 *  橡皮類
 * */
public abstract class Eraser {
            public abstract void erase();
}
package com.test;
/**
 *  鉛筆類
 * */
public abstract class Pencil {
             public abstract void wirte();
}

package com.test;
/**
 *  做一個既有鉛筆功能又有橡皮擦功能類
 *  (用介面完全可以實現,這裡只是假設這種情況,模擬多繼承)
 * */
public class PencilWithEraser{


 private MyPencil pencil = new MyPencil();
 private MyEraser eraser = new MyEraser();


 /**
  *
  * 繼承了鉛筆的功能
  *
  * */ 
 private class MyPencil extends Pencil{

  @Override
  public void wirte() {
   System.out.println("use to wirte");
  }
  
  
 }
/*寫一個既有筆功能又有橡皮側功能的類

**/

 private class MyEraser extends Eraser {

  @Override
  public void erase() {
            System.out.println("use to erase");
  }
  
 }
 /*
  * 本類自己的方法
  * */
 public void wirte(){
               pencil.wirte();
 }


 public void eraser(){
                eraser.erase();
   }
}

測試類

package com.test;

public class Test {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  PencilWithEraser pencilWithEraser = new PencilWithEraser();
                   pencilWithEraser.wirte();
                   pencilWithEraser.eraser();
 }

}

這個類既有筆又有橡皮擦功能了。模擬實現了Java多繼承。