diff options
author | ZoOgY-DoOgY <zoogydoogy@free.fr> | 2018-01-24 20:38:47 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-24 20:38:47 +0800 |
commit | 4f753233f7b460504a007d94886ab34641ba86ca (patch) | |
tree | 9d7211edcd2b1c430b140c075a480b03ac2e3a8d /docs/contracts.rst | |
parent | b177352a874d878e1ae4a31098111086ac7164d2 (diff) | |
download | dexon-solidity-4f753233f7b460504a007d94886ab34641ba86ca.tar dexon-solidity-4f753233f7b460504a007d94886ab34641ba86ca.tar.gz dexon-solidity-4f753233f7b460504a007d94886ab34641ba86ca.tar.bz2 dexon-solidity-4f753233f7b460504a007d94886ab34641ba86ca.tar.lz dexon-solidity-4f753233f7b460504a007d94886ab34641ba86ca.tar.xz dexon-solidity-4f753233f7b460504a007d94886ab34641ba86ca.tar.zst dexon-solidity-4f753233f7b460504a007d94886ab34641ba86ca.zip |
Inheritance, "super" and DDD
As explained in "Multiple Inheritance and Linearization" part, "a simple rule to remember is to specify the base classes in the order from “most base-like” to “most derived”". So "contract Final is Base1, Base2" means Final is derived from Base2, derived from Base1, so the final inheritance sequence should be, starting with the most derived contract : Final, Base2, Base1, mortal, owned.
Diffstat (limited to 'docs/contracts.rst')
-rw-r--r-- | docs/contracts.rst | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/docs/contracts.rst b/docs/contracts.rst index 273ea43a..a8ea8378 100644 --- a/docs/contracts.rst +++ b/docs/contracts.rst @@ -942,12 +942,12 @@ derived override, but this function will bypass contract Final is Base1, Base2 { } -If ``Base1`` calls a function of ``super``, it does not simply +If ``Base2`` calls a function of ``super``, it does not simply call this function on one of its base contracts. Rather, it calls this function on the next base contract in the final -inheritance graph, so it will call ``Base2.kill()`` (note that +inheritance graph, so it will call ``Base1.kill()`` (note that the final inheritance sequence is -- starting with the most -derived contract: Final, Base1, Base2, mortal, owned). +derived contract: Final, Base2, Base1, mortal, owned). The actual function that is called when using super is not known in the context of the class where it is used, although its type is known. This is similar for ordinary |