gpt4 book ai didi

java - 是否有可能不同的子类对java中父类的方法具有不同的可见性

转载 作者:行者123 更新时间:2023-11-30 06:36:40 25 4
gpt4 key购买 nike

是否有可能不同的子类对父类的方法有不同的可见性。假设有一个定义了 10 个方法的类 A。它有两个不同的子类 ClassB 和 ClassC。 ClassB 和 ClassC 是否有可能访问 ClassA 的不同方法。就像 ClassB 只能访问 ClassA 中定义的 10 个方法中的 6 个,而 ClassC 只能访问 ClassA 的其他 4 个方法? B类和C类在同一个包中。

谢谢,阿西特

最佳答案

我认为类是不可能的。要分离功能,您应该使用 interfaces 而不是扩展类。

很可能您的 A 类违反了 Single Responsibility Principal如果您需要像那样划分方法。

然后看看使用composition instead of inheritance从简单的类组成复杂的类。另请查看 strategy pattern .

像这样在界面中划分你的功能 -

public interface IFlyable
{
void FlapWings();

void Fly();
}

public interface IHuntingAnimal
{
void Hunt();
}

然后像这样实现你的类-

public class Duck : IFlyable { ...

public class Eagle : IFlyable, IHuntingAnimal { ...

public class Tiger : IHuntingAnimal { ..

注意:该示例使用 C#。您需要计算出等效的 Java。

关于java - 是否有可能不同的子类对java中父类的方法具有不同的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4563385/

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