java多继承是什么意思_java实现多继承

方法:  接口+组合

理由:通过接口实现客户端的使用时多继承类的多类, 通过组合实现客户端内部类的实现相关功能(而且有些共用的功能可以不总是多次实现)。

public interface GMapObserverDec

{

public void initTarget();

public void uninitTarget();

public void  updateObserver();

}

public abstract class GMapObserverDef  implements GMapObserverDec

{

protected GMapTargetDec m_pGMapTarget = null;

public GMapObserverDef(GMapTargetDec pGMapTarget)

{

m_pGMapTarget = pGMapTarget;

}

public void initTarget()

{

m_pGMapTarget.attach(this);

}

public void uninitTarget()

{

m_pGMapTarget.detach(this);

}

abstract public void updateObserver();

}

//----------------------------------------------------------------------多继承-------------

public class GMapPerson extends Overlay implements GMapObserverDec

{

GMapPerson(LocationBlog pLocationBlog)

{

m_pGMapObserver = new GMapObserverEx(pLocationBlog);

}

//------------------------------- 多继承语法要求的冗余代码 ------------------

class GMapObserverEx extends GMapObserverDef

{

public GMapObserverEx(GMapTargetDec pGMapTarget)

{

super(pGMapTarget);

// TODO Auto-generated constructor stub

}

@Override

public void updateObserver()

{

// TODO Auto-generated method stub

System.out.print("GMapPerson! /n");

//GMapPerson.this.updateObserver();

}

}

public void initTarget()

{

// TODO Auto-generated method stub

m_pGMapObserver.initTarget();

}

public void uninitTarget()

{

// TODO Auto-generated method stub

m_pGMapObserver.uninitTarget();

}

public void updateObserver()

{

m_pGMapObserver.updateObserver();

}

GMapObserverEx m_pGMapObserver = null;

//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

}

其中几个语法点:

1, 内部类访问外部类要: 用“类名.this.函数”这样的形式,例如GMapPerson.this.updateObserver();

2, 一个类继承了另一个类的内部类,因为超类是内部类,而内部类的构造方法不能自动

被调用,这样就需要在子类的构造方法中明确的调用超类的构造方法。

接上例:

class C extends A.B {

C() {

new A().super();  // 这一句就实现了对内部类构造方法的调用。

}

}

构造方法也可这样写:

C(A a) {

a.super();

}  // 使用这个构造方法创建对象,要写成C c = new C(a); a是A的对象。

转载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值