gpt4 book ai didi

Java 继承 - 建模多个对象

转载 作者:行者123 更新时间:2023-11-30 03:58:52 24 4
gpt4 key购买 nike

我有一个关于Java的问题,可能与多重继承有关。

行者是可以行走和繁殖的人,能说话的人是能说话和繁殖的人,游泳者是指能够游泳、说话、行走和繁殖的人。

在 Java 中对它们进行建模的最佳方法是什么?

谢谢您的回答,特茹

最佳答案

您应该将行为提取到接口(interface)中,而不是单独的类中。

interface Swimmable{
void swim();
}

interface Talkable{
void talk();
}

interface Walkable{
void walk();
}

class Person {
void breed();
}

请注意我如何将它们命名为Walkable而不是Walker。这表明这个接口(interface)定义了一种行为,而不是一个独立的东西。现在,您的实际对象可以称为 Walker,但如果您将其用于需要该行为的其他类,那么从词汇上讲 walkable 也更有意义。

有很多关于“组合优于继承”的炒作,但实际上,对于程序员在不应该使用两者时可互换使用的情况来说,这只是一个不合适的解决方案。

现在,如果您想创建一个可以游泳和行走的实体,您可以简单地定义它:

class Athlete extends Person implements Swimmable, Walkable {
@Override
void swim(){ }

@Override
void walk(){ }
}

并且不会弄乱必须通过实际 Athlete 类中的另一层调用的行为的实际实例,等等。

关于Java 继承 - 建模多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22419385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com