Java在抽象类中定义抽象方法后 再定义static 方法去调用抽象方法的意义是什么

之前课堂上布置的作业,今天看code 不是很明白为什么这样设计。

定义一个集合set 为 abstract class

部分代码如下:

public abstract class FSet {

    //定义 abstract method
    abstract boolean isEmptyMethod();

    //定义static method
    public static boolean isEmpty(FSet s) {
        return s.isEmptyMethod();
    }


}

public class EmptySet extends FSet {
    boolean isEmptyMethod() {
        return true;
    }
}

public class Include extends FSet {
    boolean isEmptyMethod() {
        return false;
    }
}

为什么要定义一个static 方法 然后去调用 abstract 方法? 这样做的目的是什么?
直接用子类去override 父类方法 有什么缺陷吗?


慕侠2389804
浏览 747回答 3
3回答

收到一只叮咚

子类实现抽象方法,这样不同的子类对这个抽象方法有不同的实现,客户程序只需保持对子类对象的父类引用即可而无需关心具体的子类到底是哪个,这样就实现了多态调用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java