派生类中额外的公共方法与编程接口的意义

问题描述

最近,我开始深入学习面向对象的原理。我从许多地方读到,我们应该始终对接口进行编程,以使我们的软件独立于底层细节。这在我的脑海中提出了一个问题:是否应允许派生类具有比其基类提供的功能方法)更多的功能方法)?当然,它会根据上下文覆盖继承的方法,但是当我们仅对接口进行编程时,如何在我们的主程序(业务逻辑)中使用派生类提供的额外功能(公共方法)?

为了举例说明,我们可以有一个Person类,并且Student类是从Person派生的。但是我们的Student类可以具有特定的方法,例如writeExam()promotetoNextYear()等。我们如何使用这些方法而不降级Person或在派生类中使用额外的公共方法违反编程到界面?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)