WebHU - Programozási kérdések és válaszok

hogyan lehet deklarálni egy metódust a szülő absztrakt osztályban, hogy a gyerekek hozzáférhessenek?

A Java-ban van egy absztrakt osztályom egy metódussal (nem absztrakt), amelyet szeretnék elérhetővé tenni más osztályok számára, amelyek kiterjesztik, de nem mindenki más számára a csomagban.

Szerintem ez nem lehetséges, mert a privát privátban tartja, nyilvános és védett túlságosan kiteszi.

Hogyan közelítenéd meg a problémát? Ugyanannak a metódusnak az újbóli megvalósítása az összes kiterjesztett osztályban nem esik szóba. Van mód a szülőmetódusok elérésére?

Kösz!


Válaszok:


1

Használj védettet, és készíts egy olyan csomagot, amely csak az absztrakt osztályt és annak alosztályait tartalmazza. Ne helyezzen be olyan osztályokat a csomagba, amelyeknek nem szabadna hozzáférniük a védett metódusokhoz.

Ha attól tart, hogy valaki más létrehoz egy új osztályt a csomagban, és elkezd hozzáférni a védett metódusokhoz, akkor valóban nincs olyan nyelvi konstrukció, amely ezt megakadályozná. Meg kell bíznia a többi fejlesztőben, vagy szigorú szakértői értékelési eljárást kell végrehajtania.

29.04.2011
  • Ha a metódus védett, akkor nem kell az alosztályokat ugyanabba a csomagba tenni... 29.04.2011
  • @pgras Ez igaz, de a csomagok közötti ciklikus függőségek elkerülése érdekében célszerű őket ugyanabban a csomagban vagy alcsomagban tartani. 29.04.2011

  • 2

    Ha azt szeretné, hogy a metódus elérhető legyen bármivel, ami kiterjeszti az osztályt, akkor protected a kívánt módosító. Erre való.

    29.04.2011

    3

    but not by everyone else in the package.. Ez nem lehetséges. A protected access használatával engedélyezheti az alosztályok elérését, de ez magában foglalja az ugyanabban a csomagban lévő összes osztályhoz való hozzáférést is.

    29.04.2011
    Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..