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多繼承。