java内部类应用之多继承
java中不允许一个类继承多个父类,但是可以使用java内部类的来达到多继承的效果,同时也避免了多继承中不好的地方。
这里拿一个有橡皮擦功能的铅笔打个比方: 橡皮擦类 public abstract class Eraser { |
看到上边的类,有人可能会问,没有具体实现的方法,为什么不用接口,这里只是打个比方,正常是应该有具体实现方法的。
现在我们手头有铅笔和橡皮擦类,想做一个带橡皮擦的铅笔类,该怎么办?
我们可以复用上边的两个类,问题出现了,我们不能同时继承这两个类,这个时候就可以用内部类来解决这个问题。
带橡皮擦的铅笔类:
public class PencilWithEraser {
private MyPencil pencil = new MyPencil();
private MyEraser eraser = new MyEraser();
private class MyPencil extends Pencil {
public void write() {
System.out.println("Use to write");
}
}
private class MyEraser extends Eraser {
public void erase() {
System.out.println("Use to erase");
}
}
public void write() {
pencil.write();
}
public void erase() {
eraser.erase();
}
}
1.使用内部类,分别继承铅笔和橡皮擦
2.分别实例化内部类作为成员变量
3.定义方法,调用实例化后内部类的方法
这样带橡皮擦的铅笔类就复用了铅笔和橡皮擦类,同时具有了他们的功能,达到了多继承的效果