24일 - 다중 상속

특사-VC / 30일의 견고함


스마트 계약 개발을 배우기 위한 30일간의 Solidity 단계별 가이드.




Solidity Series의 24 중 Day30입니다.
오늘은 Solidity에서 다중 상속에 대해 배웠습니다.

다중 상속



다중 상속에서는 단일 계약이 여러 계약에서 상속될 수 있습니다. 상위 계약에는 둘 이상의 하위가 있을 수 있고 하위 계약에는 둘 이상의 상위가 있을 수 있습니다.

예: 아래 예에서 계약 A는 계약 B에 의해 상속되고 계약 C는 계약 A와 계약 B를 상속하므로 다중 상속을 보여줍니다.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

// Defining contract A
contract A {
    string internal x;

    function setA() external {
        x = "Multiple Inheritance";
    }
}

// Defining contract B
contract B {
    uint256 internal pow;

    function setB() external {
        uint256 a = 2;
        uint256 b = 20;
        pow = a**b;
    }
}

// Defining child contract C
// inheriting parent contract
// A and B
contract C is A, B {
    // Defining external function
    // to return state variable x
    function getStr() external returns (string memory) {
        return x;
    }

    // Defining external function
    // to return state variable pow
    function getPow() external returns (uint256) {
        return pow;
    }
}

// Defining calling contract
contract caller {
    // Creating object of contract C
    C contractC = new C();

    // Defining public function to
    // return values from functions
    // getStr and getPow
    function testInheritance() public returns (string memory, uint256) {
        contractC.setA();
        contractC.setB();
        return (contractC.getStr(), contractC.getPow());
    }
}


산출:

testInheritance 함수를 호출하면 출력은 ("Multiple Inheritance", 1024)입니다.

좋은 웹페이지 즐겨찾기