30일 - 다형성
특사-VC / 30일의 견고함
스마트 계약 개발을 배우기 위한 30일간의 Solidity 단계별 가이드.
Solidity Series의
30
중 Day30
입니다.오늘 나는 Solidity의 다형성에 대해 배웠습니다.
다형성은 하나 이상의 형식으로 데이터를 처리하는 기능입니다. 다른 프로그래밍 언어와 마찬가지로 Solidity도 다형성을 지원합니다. Solidity는 함수 다형성과 계약 다형성이라는 두 가지 유형의 다형성을 지원합니다.
함수 다형성
함수 다형성은 메서드 오버로딩이라고도 합니다. 함수 다형성에서는 동일한 계약 또는 상속 계약 내에서 동일한 이름을 갖는 여러 함수가 선언됩니다. 함수는 매개변수 또는 매개변수 데이터 유형의 수에 따라 다릅니다. 함수 선언은 반환 유형만 다른 함수에 의해 오버로드될 수 없습니다.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
// Contract definition
contract methodOverloading {
// Function to get value of the string variable
function getValue(string memory _strin) public pure returns(string memory) {
return _strin;
}
// function to get value of the unsigned integer variable
function getValue(uint _num) public pure returns(uint) {
return _num;
}
}
계약 다형성
계약 다형성은 여러 계약 인스턴스가 상속을 사용하여 서로 관련될 때 상호 교환 가능하게 사용하는 것을 의미합니다. 이는 상위 계약의 인스턴스를 사용하여 하위 계약 기능을 호출하는 데 도움이 됩니다.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract parent{
// Internal state variable
uint internal sum;
// Function to set the value of internal state variable sum
function setValue(uint _num1, uint _num2) public {
sum = _num1 + _num2;
}
// Function to return a value 10
function getValue() virtual public view returns(uint) {
return 10;
}
}
// Defining child contract
contract child is parent{
// Function getValue overloaded to return internal state
// variable sum defined in the parent contract
function getValue() override public view returns(uint) {
return sum;
}
}
// Defining calling contract
contract ContractPolymorphism {
// Creating object
parent pc = new child();
// Function to set values of 2 unsigned integers
function getInput(uint _num1, uint _num2) public {
pc.setValue(_num1, _num2);
}
// Function to get value of internal state variable sum
function getSum() public view returns(uint) {
return pc.getValue();
}
}
ContractPolymorphism
계약을 배포하고 getInput
및 52
값으로 함수78
를 호출한 다음 getSum
메서드를 호출하면0:
uint256: 130
Reference
이 문제에 관하여(30일 - 다형성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/envoy_/day-30-polymorphism-pkk텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)