java内部类应用之多继承 -列子

通过Java内部类实现多继承效果,使一个类同时拥有铅笔书写和橡皮擦除的功能,有效利用现有类资源。

java内部类应用之多继承  

java中不允许一个类继承多个父类,但是可以使用java内部类的来达到多继承的效果,同时也避免了多继承中不好的地方。

这里拿一个有橡皮擦功能的铅笔打个比方:
铅笔类
public abstract class Pencil {
  public abstract void write();
}

橡皮擦类

public abstract class Eraser {

  public abstract void erase();
}

看到上边的类,有人可能会问,没有具体实现的方法,为什么不用接口,这里只是打个比方,正常是应该有具体实现方法的。

现在我们手头有铅笔和橡皮擦类,想做一个带橡皮擦的铅笔类,该怎么办?

我们可以复用上边的两个类,问题出现了,我们不能同时继承这两个类,这个时候就可以用内部类来解决这个问题。

带橡皮擦的铅笔类:

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.定义方法,调用实例化后内部类的方法

这样带橡皮擦的铅笔类就复用了铅笔和橡皮擦类,同时具有了他们的功能,达到了多继承的效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值