Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关于抽象类的两个概念让我感到困惑_Java_Abstract - Fatal编程技术网

Java 关于抽象类的两个概念让我感到困惑

Java 关于抽象类的两个概念让我感到困惑,java,abstract,Java,Abstract,我很困惑,因为我在书中发现了两个我认为不正确的概念。请帮我澄清这两点 只要一个类有一个或多个抽象方法,这个类就是抽象的,即使它不是声明为抽象的(尽管强烈建议这样做)。这是正确的: class A { public abstract void f() ; // OK ..... } 然而,A被认为是抽象的,是一个表达式,例如new A(…) 将被拒绝 抽象方法必须声明为public,这是合乎逻辑的,因为它的目的是在子类中重新定义 第一点给了我一个错误,第二点是不必要的。我走对了吗

我很困惑,因为我在书中发现了两个我认为不正确的概念。请帮我澄清这两点

  • 只要一个类有一个或多个抽象方法,这个类就是抽象的,即使它不是声明为抽象的(尽管强烈建议这样做)。这是正确的:

    class A
    { 
       public abstract void f() ; // OK
       .....
    }
    
    然而,A被认为是抽象的,是一个表达式,例如new A(…) 将被拒绝

  • 抽象方法必须声明为public,这是合乎逻辑的,因为它的目的是在子类中重新定义

  • 第一点给了我一个错误,第二点是不必要的。我走对了吗

  • 错。不能在非
    abstract
    类中声明
    abstract
    方法

  • 错。您还可以使用
    受保护的
    或包本地
    抽象的
    方法

  • 关于接口有一个特殊的规则:接口中的方法总是
    公共摘要
    。定义接口时,指定以下任何修饰符都是多余的:

    public interface Foo
    {
        /* public abstract is implied here */ void bar();
    }
    
  • 错。不能在非
    abstract
    类中声明
    abstract
    方法

  • 错。您还可以使用
    受保护的
    或包本地
    抽象的
    方法

  • 关于接口有一个特殊的规则:接口中的方法总是
    公共摘要
    。定义接口时,指定以下任何修饰符都是多余的:

    public interface Foo
    {
        /* public abstract is implied here */ void bar();
    }
    

    这本书完全错了。我建议回收利用

  • 必须声明包含
    abstract
    方法的类
    abstract
  • 抽象方法不需要声明为
    public
    ——它可以是除
    private

  • 这本书完全错了。我建议回收利用

  • 必须声明包含
    abstract
    方法的类
    abstract
  • 抽象方法不需要声明为
    public
    ——它可以是除
    private


  • 这个问题似乎离题了,因为它是用法语提问的,而且这是一个纯英语的网站(我想)。第二个定义也是错误的。第二点也是错误的——它说抽象方法必须声明为公共的:它们可以声明除
    private
    之外的任何内容。两者都是错误的句子。它们是练习吗?这是我的翻译,@Jason,是的,我要编辑它。抱歉。这个问题似乎离题了,因为它是用法语问的,而且这是一个纯英语的网站(我想)。第二个定义也是错误的。第二点也是错误的——它说抽象方法必须声明为公共的:它们可以声明除
    私有
    之外的任何内容。这两个都是错误的句子。它们是练习吗?这是我的翻译,@Jason,是的,我要编辑它。对不起,我很困惑,因为这本书是Eyrolles版的名著之一,作者是CLAUDE Delhave,我应该继续读还是停下来?我读了大约228页?我知道Delhave先生,我甚至有一两本他的书(我也是法国人),但这本书绝对是一本垃圾书(在法语中是“une merde”)。别管它!我想我会用英语找一本好书,你能给我推荐一本好书吗?这是书中写的抽象类的两条规则。我很困惑,因为这本书是Eyrolles版的名著之一,作者是CLAUDE Delhairt,我应该继续读下去还是停下来?我读了大约228页?我知道Delhave先生,我甚至有一两本他的书(我也是法国人),但这本书绝对是一本垃圾书(在法语中是“une merde”)。别管它!你喜欢这本书吗?谢谢,我想我会用英语找一本好书,你能给我推荐一本好的吗?这是书中写的两条抽象类规则。