gpt4 book ai didi

java - 类的某些对象可以具有特定的行为,而其他对象则没有

转载 作者:搜寻专家 更新时间:2023-11-01 02:23:31 24 4
gpt4 key购买 nike

我该如何设计这种特殊情况。

Basic Diagram of my problem.

问题是:

  1. 如果我在 Bird 中实现 Swim 并将 diveNow() 行为添加到“飞得很高”,但这是不需要的,因为所有的鸟都不能飞。

换句话说,“有些对象可以做到这一点,有些则不能,并且都属于同一个类。”

我可以使用策略模式吗?如何?如果我有大量行为 [接口(interface)] 遇到相同类型的问题怎么办。

另一种情况(如果我重写 Animal 中的 flyNow()但当然有些动物会飞(飞鼠,飞狐猴。)

最佳答案

不是所有的鸟都能飞,所以不要在那里实现Fly:

class Bird {}

但是有些鸟可以:

class FlyingBird extends Bird implements Fly {}

鸭子是会飞会游泳的鸟。两种可能(都是一样的,鸭子是会飞会游的鸟):

class Duck extends Bird implements Fly, Swim {}
class Duck extends FlyingBird implements Swim {}

企鹅是会游泳但不会飞的鸟:

class Penguin extends Bird implements Swim {}

鸵鸟既不会飞也不会游泳(据我所知):

class Ostrich extends Bird {}

关于java - 类的某些对象可以具有特定的行为,而其他对象则没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32228432/

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