gpt4 book ai didi

java - Java中如何不重写子类中的方法?

转载 作者:行者123 更新时间:2023-12-02 03:28:52 25 4
gpt4 key购买 nike

我有一个类,需要它来创建具有类似功能的派生类。

public abstract class PreloaderAdapter<T> extends BaseAdapter {
private final List<T> mList;

...
public void addItems(List<T> list) {
mList.addAll(list);
notifyDataSetChanged();
}

public void clear(boolean isRepaint) {
mList.clear();
if (isRepaint) {
notifyDataSetChanged();
}
}
...
}

在派生类中,我可以重写这些方法,但我不想这样做,因为它们是相同的。

  1. 请您告诉我,这样写就足够了吗?

    public class SomeListAdapter extends PreloaderAdapter<MyClass> {
    private final List<MyClass> mList;

    ...
    public void addItems(List<MyClass> list) {
    super.addItems(list);
    // mList.addAll(list);
    // notifyDataSetChanged();
    }

    public void clear(boolean isRepaint) {
    super.clear(isRepaint);
    // mList.clear();
    // if (isRepaint) {
    // notifyDataSetChanged();
    // }
    }
    ...
    }

或者我应该取消注释这些行并在父类(super class)中删除它们?

  • 我应该将父类(super class)设为抽象吗?

  • 我应该在父类(super class)中使用字段吗?

  • 最佳答案

    1. 默认情况下,这些方法是继承的,也就是说,它们可以被使用,因此您不必覆盖它们。
    2. 如果您不想提供创建此类实例的可能性,或者不想留下某些未实现的行为以及由子类实现的责任,则父类(super class)应该是抽象的。
    3. 您可以使用父类(super class)中的字段,没有问题。无论如何,请注意可见性(私有(private)、 protected 、公共(public))。

    关于java - Java中如何不重写子类中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38392807/

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