【问题标题】:Java interface and method declarations [closed]Java接口和方法声明[关闭]
【发布时间】:2014-03-18 18:22:38
【问题描述】:

问题:当一个类指定它实现了一个接口,但没有提供接口中所有方法的声明时会发生什么?

【问题讨论】:

  • 你尝试的时候发生了什么?

标签: java interface polymorphism abstract


【解决方案1】:

如果类不是抽象的,则编译错误。如果类是抽象的,可以不定义声明的接口的一些方法。缺少的方法必须在派生的非抽象类中定义在末尾。

【讨论】:

    【解决方案2】:

    您必须声明该接口继承的所有方法,否则它将无法编译。

    例子:

    interface SomeInterface {
        public void methodOne();
        public void methodOne();
        public void methodOne();
    }
    

    还有:

    class SomeClass implements SomeInterface {
        //this wont complie
    }
    

    但如果该类是抽象类,它可以声明从该接口或其中一些接口继承的方法,

    例子:

    interface SomeInterface {
        public void methodOne();
        public void methodOne();
        public void methodOne();
    }
    

    还有:

    abstract class SomeClass implements SomeInterface {
        //this will compile
    }
    

    【讨论】:

      【解决方案3】:

      除非你的类是抽象的,否则它根本不会编译。

      例如编译器说不!

      【讨论】:

        【解决方案4】:

        它将无法编译。 “如果您的类声称实现了一个接口,则该接口定义的所有方法都必须出现在其源代码中,然后该类才能成功编译。”来自Object-Oriented Programming Concepts

        【讨论】:

          【解决方案5】:

          编译错误将生成声明以覆盖抽象方法。 请记住,与抽象类不同,接口根本不能提供任何实现。这意味着,任何实现接口的类都必须提供所有方法的实现。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-07-10
            • 2014-02-23
            • 1970-01-01
            • 2016-07-16
            • 2014-02-02
            相关资源
            最近更新 更多