Solidity 솔리디티 강좌 16강 : 상속의 순서

flowing1ife·2023년 7월 7일
0

[ Solidity 깨부수기 ]

목록 보기
16/29
post-thumbnail

Solidity 솔리디티 강좌 16강 : 상속의 순서
이번엔 solidity의 상속의 순서에 대해 알아보도록 하자.


상속의 순서

📌 Solidity

상속의 순서에 따라 super로 상속되는 컨트랙트가 달라진다.

// SPDX-License-Identifier: GPL-3.0
pragma solidity >= 0.7.0 < 0.9.0;

contract Father {
    event FatherName(string name);

    function who() public virtual {
        emit FatherName("KimDaeho");
    }
}

contract Mother {
    event MotherName(string name);

    function who() public virtual {
        emit MotherName("leeSol");
    }
}

contract Son is Father,Mother {
    event sonName(string name);
    
    function who() public override (Father,Mother){
        super.who();
        //emit sonName("KimJin");
    }
}

Father, Mother 컨트랙트가 있고, Son 컨트랙트는 Father, Mother 컨트랙트를 상속한다. 그리고 Father, Mother 컨트랙트 모두 who 함수가 존재하는데, 이 경우에 Son 컨트랙트의 super.who()는 어떤 것을 상속받아 올까 ?

👉 결과

가장 최신으로 상속을 한 컨트랙트인 Mother 컨트랙트의 who 함수가 실행되었다. 이처럼 최근에 상속을 한, 즉 is 뒤에 나열된 컨트랙트 중 맨 뒤의 컨트랙트의 것이 super를 통해 상속된다.


출처 및 참고 자료

profile
👩🏻‍💻 Backend Engineer, Contract Developer

0개의 댓글