区块链开发之Solidity编程基础(五)合约继承、抽象合约、接口


本文主要讲解下Solidity的继承系统,主要内容为 单继承以及 多重继承。如果有其他编程经验的话,便知道继承的主要目的在于优化重复代码,是面向对象编程思想的体现。

原理

solidity通过复制包括多态的代码来支持多重继承,即当一个合约从多个合约继承时,在区块链上只有一个合约被创建,所有基类合约的代码被复制到创建的合约中

所有的函数调用都是虚拟的,这意味着最远的派生函数会被调用,除非明确给出合约名称。派生的合约需要提供所有父合约需要的所有参数。

单继承

pragma solidity ^0.4.0;
contract Base {
   
	uint _x;
	// Base基类构造函数携带参数
	function Base(uint x) {
   
		_x = x;
	}
}

// 使用 is 从另一个合约派生。派生合约可以访问所有非私有成员,包括内部函数和状态变量,
// 但无法通过 this 来外部访问。
contract Derived is Base(7) {
   
	function Derived(uint y) Base(y * y) {
   
	}
}

派生合约需要提供基类构造函数需要的所有参数,可以采用两种方式来实例化。
1、使用 is Base(7)携带默认参数方式
2、派生类指定基类构造参数时,在派生类的构造函数定义Bas

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值