代码之家  ›  专栏  ›  技术社区  ›  Daibaku

省去有无抽象关键字的区别?

  •  1
  • Daibaku  · 技术社区  · 7 年前

    嗨,我只是想知道给出抽象关键字和不这样做有什么区别。

    // with
    abstract class A {}
    
    class B extends A {}
    
    // without
    class A {}
    
    class B extends A {}
    

    我应该给它吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Günter Zöchbauer    7 年前

    abstract 您可以省略方法和getter/setter的实现

    // with
    abstract class A {
      int foo();
      String get bar;
      set baz(String value);
    }
    
    var a = A(); // error about instantiating abstract class
    
    class B extends A {
      // error about missing implementations
    }
    
    var b = B(); // ok
    
    // without
    class A {
      int foo(); // error about missing implementation
      String get bar; // error about missing implementation
      set baz(String value); // error about missing implementation
    }
    
    class B extends A {}