簡體   English   中英

包中類的多態性模仿

[英]Polymorphism mimic for class in packages

OOP允許繼承抽象方法,因此每個孩子都有自己的實現。 通常,這種能力會級聯以對應用程序進行編碼,因此,它在不同的時間調用一個相同的消息,並根據實例化的子代的類型接收不同的輸出。 這個概念稱為多態。

想象一下,多態為開發人員提供了創建對象的機會。 可以為該對象分配對多個類實例之一的引用,這些實例都包含具有相同簽名但實現方式不同的方法。 該分配是通過條件語句進行的。 此后,使用該對象調用方法,而該對象又會根據適當的條件執行不同的操作。

以相同的觀點,但是現在我們正在處理一個Java應用程序,該應用程序具有許多包含同名類的包。 場景該應用程序的所有用戶都經過一個Login類,然后路由到Main Menu屏幕(Main類)。 有兩個不同的用戶,因此Main類的兩個版本,每個版本位於兩個軟件包中(分別是:admin和user),它們充當其余適當軟件包的入口點。

是否有一個Polymorphism模擬項可以讓我們在Login類中聲明一個對象,該對象在身份驗證過程中,然后根據用戶類型分配對任一程序包映射的引用?

之后,調用reference.Main.setVisible(true); 將打開當前登錄用戶類型的Main類。

讓兩個版本的菜單都實現一個接口/抽象類。 然后在登錄類中多態使用該接口。

例如,創建一個名為Menu的抽象類,並讓userMenu和adminMenu類擴展Menu。 在您的Login類中,創建一個Menu類型的字段(為方便起見,將其命名為m)。 在運行時分配新的UserMenu或AdminMenu,具體取決於用戶是誰。 然后,當您要打開菜單時,調用m.setVisible(true)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM