Solidity Interface

Interface

μΈν„°νŽ˜μ΄μŠ€λŠ” λ‹€λ₯Έ μ»¨νŠΈλž™νŠΈμ™€ μƒν˜Έμž‘μš©ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λœλ‹€.

μžμ‹ μ»¨νŠΈλž™νŠΈλ₯Ό μœ„ν•œ 틀이며, 좔상 ν•¨μˆ˜λ‘œλ§Œ κ΅¬μ„±λ˜μ–΄μ•Ό ν•œλ‹€.

ν•΄λ‹Ή λ‚΄μš©μ„ κ΅¬ν˜„ν•˜μ§€λŠ” μ•Šκ³  이λ₯Ό μƒμ†ν•˜λŠ” μͺ½μ—μ„œ κ΅¬ν˜„ν•˜κ²Œ ν•˜λ˜, λ‹€λ₯Έ μ»¨νŠΈλž™νŠΈλ“€μ—κ²Œ 이 μ»¨νŠΈλž™νŠΈλŠ” 이런 ν•¨μˆ˜λ“€μ„ ν¬ν•¨ν•˜λ‹ˆ μ•ˆμ‹¬ν•˜κ³  ν˜ΈμΆœν•˜λΌλŠ” 정보λ₯Ό μ£ΌλŠ” 역할을 ν•œλ‹€.

Interface in Solidity

μ•„λž˜λŠ” κ°„λ‹¨ν•œ μΈν„°νŽ˜μ΄μŠ€ μ˜ˆμ‹œμ΄λ‹€.

ICalculatorλ₯Ό μ΄μš©ν•΄μ„œ 계산기에 λŒ€ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§Œλ“€μ—ˆκ³ , contract Calculator is ICalculator κ΅¬μ ˆμ€ Calculator μ»¨νŠΈλž™νŠΈκ°€ ν•΄λ‹Ή μΈν„°νŽ˜μ΄μŠ€λ₯Ό 상속받도둝 λ§Œλ“ λ‹€.

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

interface ICalculator {
    function Add(uint256 a, uint256 b) external pure returns (uint256 result);

    function Sub(uint256 a, uint256 b) external pure returns (uint256 result);

    function Div(uint256 a, uint256 b) external pure returns (uint256 result);

    function Mul(uint256 a, uint256 b) external pure returns (uint256 result);
}

contract Calculator is ICalculator {
    function Add(uint256 a, uint256 b) external pure returns (uint256 result) {
        result = a + b;
    }

    function Sub(uint256 a, uint256 b) external pure returns (uint256 result) {
        result = a - b;
    }

    function Div(uint256 a, uint256 b) external pure returns (uint256 result) {
        result = a / b;
    }

    function Mul(uint256 a, uint256 b) external pure returns (uint256 result) {
        result = a * b;
    }
}

λ§Œμ•½μ— μƒμ†λ°›λŠ” μ»¨νŠΈλž™νŠΈκ°€ μ—¬λŸ¬ κ°œκ°€ λœλ‹€λ©΄ μ–΄λ–»κ²Œ ν• κΉŒ?

μ•„λž˜μ™€ 같이 μž‘μ„±ν•  수 μžˆλ‹€.

κ·Έλ ‡λ‹€λ©΄ ν•œ 걸음 더 λ‚˜μ•„κ°€μ„œ, 같은 λ©”μ†Œλ“œλ₯Ό κ°€μ§„ 두 개의 μΈν„°νŽ˜μ΄μŠ€λ₯Ό μƒμ†λ°›λŠ” κ²½μš°μ—λŠ” μ–΄λ–»κ²Œ μ²˜λ¦¬ν•΄μ•Ό ν• κΉŒ?

μ•„λž˜μ™€ 같이 override둜 λͺ…μ‹œν•΄μ€ŒμœΌλ‘œμ¨ 상속을 λ°›μ•„ κ΅¬ν˜„ν•  수 μžˆλ‹€.

Last updated