Siblearn Academy siblearn academy

Shadowing Inherited State Variables

بر خلاف توابع، متغیرهای حالت را نمی توان با اعلام مجدد آن لغو کرد

بیایید یاد بگیریم که چگونه متغیرهای حالت ارثی را به درستی نادیده بگیریم.


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

contract A {
    string public name = "Contract A";

    function getName() public view returns (string memory) {
        return name;
    }
}

// Shadowing is disallowed in Solidity 0.6
// This will not compile
// contract B is A {
//     string public name = "Contract B";
// }

contract C is A {
    // This is the correct way to override inherited state variables.
    constructor() {
        name = "Contract C";
    }

    // C.getName returns "Contract C"
}

روی محیط توسعه ی Remix امتحان بکنید

  • Shadow.sol
  • بازگشت به لیست