JAVA如何利用接口制造类似于C++的多继承

博客指出多继承虽有弊端但有时需使用,可利用接口实现。给出Java示例,定义多个接口和类,Hero类继承ActionCharter类并实现多个接口,运行时采用动态绑定实现多态,该示例简单且实用。

       多继承其实是不好的东西,但是你有时候却要用到它,那怎么办呢?可以利用接口,下面是一个简单的例子。

interface CanFly
{
 void fly();
}

interface CanSwim
{
 void swim();
}

interface CanFight
{
 void fight();
}

class ActionCharter
{
 public void fight()
 {
  System.out.println("I can fight");
 }
}

class Hero extends ActionCharter implements CanFly,CanSwim,CanFight
{
 public void swim(){
  System.out.println("I can swim");
 }
 
 public void fly(){
  System.out.println("I can fly");
 } 
}

public class HelloWorld
{
 public static void u(CanFly i){i.fly();}
 public static void v(CanSwim i){i.swim();}
 public static void w(CanFight i){i.fight();}
 public static void x(ActionCharter i){i.fight();}
 
 public static void main(String []args)
 {
  Hero hero = new Hero();
  u(hero);
  v(hero);
  w(hero);
  x(hero);
 }
 
}

讲解一下,这个例子里面在Hero继承了一个类ActionCharter来实现接口CanFight的功能,另外两个接口用方法实现,而在运行的时候采用动态绑定,来进行多态的实现,这个例子很简单,但是用在实际上却很有用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值