gpt4 book ai didi

java - 如何从父抽象类调用子类方法

转载 作者:行者123 更新时间:2023-12-02 02:48:02 29 4
gpt4 key购买 nike

大家好,我是 Java 新手,仍在学习 OOP 原理。直奔问题。所以我有一个抽象类和两个继承它的类。它看起来像这样:

public abstract class A { ... }
public class B extends A {
...
void methodB() { ... }

public class C extends A {
...
void methodC() { ... }

现在我做到了:

A a = null;
if (that)
a = new B();
else
a = new C();

此时我想做 a.methodB();a.methodC(); (当然不是两者都做,因为我创建了一个 child ) 但我不能两者都做。

最佳答案

您违反了 OOPS 概念。因为父类不需要知道子类的行为。您可以在类 A. 中创建一个抽象方法,然后调用方法 A.something()。只需重写 B 和 C 类中的某个方法,并提供与 methodB 和 methodC 中相同的实现即可。

public abstract class A { abstract something(); }

public class B { overide something(){} }

public class C { overide something(){} }

A a = null;
if (that)
a = new B();
else
a = new C();

if that is true then it equivalent to B.something() else C.something(). You can read more about method overriding/runtime polymorphism.

关于java - 如何从父抽象类调用子类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61434505/

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