繁体   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