java - java中调用父类(super class)的方法但使用子类的局部变量

标签 java inheritance polymorphism

假设我有课 alpha有一个方法:

public boolean isValid(char character) 
{
    for (char validChar : VALID_CHARACTERS) {
        if (character == validChar) {
            return true;
        }
    }
    return false;
}

和数组:

public static final char[] VALID_CHARACTERS = { 'a', 'b', 'c', 'd', 'w' };

然后我有一个子类 beta延伸alpha我想打电话 alphaisValid() beta中的方法,但我想使用新的有效字符列表。我该怎么做呢?如果我调用 isValid方法默认使用 VALID_CHARACTERS来自alpha而不是 beta 中的那些.

最佳答案

您可以在 alpha 类中拥有一个方法:

public char[] getValidCharacters() 
{
    return VALID_CHARACTERS;
}

然后你可以在子类beta中重写这个方法。

并且您使用该方法而不是直接访问 VALID_CHARACTERS

关于java - java中调用父类(super class)的方法但使用子类的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27025597/

相关文章:

c++ - 我是否需要使用继承对象(相对于基础对象)来覆盖我的虚函数?

java - super在Java中是如何实现的?

c++ - 具有写时复制的多态类的 QList?

java - java中函数重载与跨继承类的函数重写

java - 将 spinnermodel 更改为 double 值,以便稍后在更改事件之外使用

java - ArrayList 有两个元素,是否可以找到 int 元素的平均值?

"args"中的 Java 日期格式

java - 错误导入库 JFreeChart (java)

java - 继承中的方法签名

c++ - 使用抽象基类指向 SDL_Rect 类成员的指针问题