Geerbte Funktionen überschreiben

Published by Mario Oettler on

Last Updated on 10. September 2024 by Mario Oettler

Sollte einem der Inhalt einer von einem anderen Contract geerbten Funktion nicht gefallen, kann man diese Funktion überschreiben. Voraussetzung dafür ist, dass diese Funktion in dem Eltern-Contract (auch Base-Contract genannt) mit “virtual” markiert ist. Zudem müssen Eingabeparameter und Rückgabeparameter mit der ursprünglichen Funktion übereinstimmen.

Das Überschreiben der Funktion geschieht mit dem Schlüsselwort “override”.

function functionFromLibrary(uint param1, uint param2, address param3) public override{

        // implement functionality here;

}

Beispiel

Den Quellcode finden Sie in der Datei contract_s2_09.sol.

// SPDX-License-Identifier: unlicensed
pragma solidity 0.8.26;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract MyERC721 is Ownable, ERC721("BAS 2024 721", "BAS "){
    address public myAddress;

    function transferFrom(address _from, address _to, uint256 tokenID) public override{
        myAddress = _from;
    }
}

Die Funktion transferFrom wird durch unseren eigenen Code überschrieben.

Aufgabe

Überschreiben Sie die Funktion balanceOf() aus der ERC721-Bibliothek von OpenZeppelin, sodass diese stets den Wert 10 zurückgibt.

Lösung

Categories:

https://blockchain-academy.hs-mittweida.de/wp-content/uploads/2021/04/logo_bcam_rgb_gross.png

Welcome

Blockchain Academy

Continue with credential

No account yet?

Powered by Hidy

Register with Hidy


Register
Sign in

We need the following credential to register:

please select:

To create a new account, we need the following data from you:

We would appreciate the following additional information from you for the creation of your account:

Welcome

Blockchain Academy

Continue with credential

Already have an account?

Powered by Hidy

Sign in with Hidy


Register
Sign in

We need the following credential to log in:

please select: