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

标签 java inheritance abstract-class

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

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 显示的错误是静态分析的一部分,但我仍然想知道这个程序是如何编译和运行的,没有任何问题

最佳答案

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

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

只是不要那样做,也不要忽略来自编译器的错误消息。

关于java - 没有抛出抽象方法未实现的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28475433/

相关文章:

java - Tomcat 上的 war 部署需要很长时间

java - Java EE Controller 上的Spring安全认证

c# - 如何将公共(public)抽象类的子类化限制为同一程序集中的类型,从而允许将 protected 成员类型化为内部类型

php - 返回带有抽象类的新 $this

java - 无法使用 eclipse 调试器进行调试

java - 如何进行身份验证以访问我们自己的数据?

inheritance - Kotlin 中的 var 可以用带有继承类的 val 覆盖吗?

oop - 继承可以完全被组合取代吗?

数组继承中的 C++ 对象

c# - 为什么抽象类要实现抽象基类的抽象方法?