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"
}