-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinherit.sol
43 lines (35 loc) · 983 Bytes
/
inherit.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// SPDX-License-Identifier: MIT
pragma solidity 0.8.12;
contract A {
function foo() public pure virtual returns (string memory) {
return "A";
}
}
//Contract inherit other contracts by using keyword 'is'
contract B is A{
//it will override contract_A
function foo() public pure virtual override returns (string memory){
return "B";
}
}
contract C is A {
//Override contract_A
function foo() public pure virtual override returns (string memory) {
return "C";
}
}
contract D is B, C {
function foo() public pure override (B, C) returns (string memory) {
return super.foo();
}
}
contract E is C, B{
function foo() public pure override (C, B) returns (string memory) {
return super.foo();
}
}
contract F is A, B {
function foo() public pure override (A, B) returns (string memory) {
return super.foo();
}
}