您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

多态性和接口-澄清吗?

多态性和接口-澄清吗?

我认为您在正确的轨道上。接口本身不是多态的。他们将多态性形式化。它们允许您以声明的方式而不是实现来定义多态行为。我喜欢将Interfaces视为俱乐部中的佼佼者。他们只是确保每个人都遵循多态规则。

在您的示例中,实际的多态行为与接口本身无关,而与共享的方法有关。walk方法适合于子类型多态性示例。接口本身只是按照合同规定,必须让子对象走路。

更新:

基于评论:只是为了清楚起见-通过对象实现的不同接口查看对象-也是多态行为吗?

接口本身只是一个合同(您已在问题中添加了合同)。多态性来自合同中的方法。“多态类型是一种类型,其操作也可以应用于某些其他类型的值”(来自维基百科)。接口(合同)是包含服务或使用方法(条款)的协议。因此,每个合同都持有属于多态行为的条款。

Dog implements IWalk, ITalk, IAnimal
{
    //concrete implementation
}

IWalk 
{
    void walk();
}

ITalk
{
    String talk();
}

IAnimal
{

}

我对Java感到生疏,因此如果语法上不正确,请考虑使用此伪代码

在这种情况下,IAnimal只是不包含多态行为的合同。IWalk和ITalk促进多态性。

其他 2022/1/1 18:30:09 有751人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶