没有抛出抽象方法未实现的错误

时间:2015-02-12 10:46:11

标签: java inheritance abstract-class

所以我只是想学习来自C ++背景的java,作为快速ramup的一部分,我刚从抽象类实现了一个基类,如下所示

abstract class my_abstract_class
{
    abstract void my_abstract_function();
}

class my_concrete_class extends my_abstract_class
{

}

public class ConcreteClasses {

    public static void main(String args[])
    {
        my_concrete_class my_concrete_class = new my_concrete_class();

    }

即使我的具体类没有实现抽象方法也不是抽象类,这个过程就会通过。不应该抛出编译错误吗?或者我错过了一些非常基本的东西

PS:错误是由eclipse作为静态分析的一部分显示的,但我仍然想知道这个程序如何编译和运行没有任何问题

1 个答案:

答案 0 :(得分:3)

Eclipse编译器有点特殊。如果代码没有编译,它会生成错误消息,但仍会通过生成抛出异常的伪方法来编译类。

如果您运行的项目存在编译错误,则会警告您不应该这样做,但仍可以继续。

不要这样做,不要忽略编译器的错误消息。