0
0
Blockchain / Solidityprogramming~10 mins

Why inheritance promotes code reuse in Blockchain / Solidity - Visual Breakdown

Choose your learning style9 modes available
Concept Flow - Why inheritance promotes code reuse
Define Base Contract
Base Contract has common code
Create Derived Contract
Derived Contract inherits Base
Derived Contract reuses Base code
Add new features in Derived
Deploy and use Derived Contract
Inheritance lets a new contract use code from an existing one, so you don't rewrite shared parts.
Execution Sample
Blockchain / Solidity
contract Base {
  uint public x;
  function setX(uint _x) public {
    x = _x;
  }
}

contract Derived is Base {
  function increment() public {
    x += 1;
  }
}
Shows a base contract with a variable and setter, and a derived contract that inherits and adds a new function.
Execution Table
StepActionContractVariable xFunction CalledEffect
1Deploy BaseBase0noneBase contract created with x=0
2Call setX(10)Base0 -> 10setXx updated to 10
3Deploy DerivedDerived0noneDerived contract created, inherits x from Base
4Call setX(5)Derived0 -> 5setXInherited setX sets x to 5
5Call increment()Derived5 -> 6incrementDerived adds 1 to x
6Check x valueDerived6nonex is now 6 in Derived contract
💡 Execution stops after increment and x value check in Derived contract.
Variable Tracker
VariableStartAfter Step 2After Step 4After Step 5Final
x in Base010101010
x in Derived00566
Key Moments - 3 Insights
Why does Derived contract have access to variable x even though it is declared in Base?
Because Derived inherits Base, it gets all public and internal variables like x, as shown in steps 3 and 4 of the execution_table.
What happens when Derived calls setX? Does it use its own or Base's function?
Derived uses the inherited setX function from Base, so calling setX on Derived updates x in Derived's storage, as seen in step 4.
How does inheritance help avoid rewriting the setX function?
Inheritance lets Derived reuse setX from Base without rewriting it, saving code and reducing errors, demonstrated by step 4.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 4, what is the value of x in Derived after calling setX(5)?
A5
B10
C0
D6
💡 Hint
Check the 'Variable x' column at step 4 in execution_table.
At which step does the Derived contract add 1 to x?
AStep 2
BStep 4
CStep 5
DStep 6
💡 Hint
Look for the 'Function Called' column showing 'increment' in execution_table.
If Derived did not inherit Base, what would happen when calling setX on Derived?
AIt would update x in Derived
BIt would cause an error because setX is undefined
CIt would update x in Base
DIt would create a new variable x
💡 Hint
Inheritance provides access to Base's functions; without it, Derived lacks setX.
Concept Snapshot
Inheritance lets a contract reuse code from another.
Derived contracts get variables and functions from Base.
This avoids rewriting shared code.
Derived can add new features on top.
Use 'contract Derived is Base' syntax.
Promotes cleaner, shorter code.
Full Transcript
Inheritance in blockchain contracts means one contract (Derived) can use code from another (Base). This lets Derived access variables and functions defined in Base without rewriting them. For example, Base has a variable x and a function setX to change it. Derived inherits Base, so it can call setX and also add new functions like increment to increase x. This saves time and avoids mistakes by reusing code. The execution steps show deploying Base, setting x to 10, then deploying Derived which inherits x starting at 0. Calling setX(5) on Derived updates its x to 5, then increment adds 1 making x 6. Without inheritance, Derived would not have setX and would cause errors. Inheritance promotes code reuse by sharing common code and letting Derived add new features.