abstract 类和成员

TypeScript 中的类、方法和字段可能是抽象的。

Classes, methods, and fields in TypeScript may be abstract.

eK7OkmSgMcqJansWlW6IudZiD+NIrwGD6JcZHk6DfCIqBwrvEHhYATv58iG/zuiVp9vb7A4ofUti1zkKoD5uUJrStrFyYgXV0OvgNEU8z8SozHgy2ZHQWeYoVnz4lJyF7lu7741z7grJUnK3JlOCI6BB6rJx1rqxSeRABvFTlQer9Em+YBl3zR6EQGb2tyzo4yQ0WCJGHMTm+cf5o9AtQFouX1Y9pM9uo/vIL88UZyl3oHLbjYxYeRAW4nwxVYAO0gqJ+ElmK/PfXjIuLn6wpPQcJr/Wa9FE/7mUScmwxO2iuM+Imm8ueW5npFzWGJF7cp/cFO3eGFiDXkGS3LSEgQPaGyQ62StzIgqng8ezcOShRKbiZ2Pq/SSLV1u06pRde9GEbBw+dt1N2SdQ0GxL33FHS3kbSAIBoDvpDxGom2wjNPd31K0eWO4ZkRlgakTjOYRcBKZ8YBnVKLXS8kJKq412UiX70NXnxYd7Ojfvkok=

NUSgN7dEfWD3zQTVtxFb8r+xRQCkUUy3au3DXUKSop5DAc7dqDbCr366guIPNV9TauCG0RdeHrca2nn7T++LVhx2YoZbgXOdNNM3abPXXAG/Mn88OvEUjewY7PX8oIC1Bf4PK3Ev3K5dI4VWBEsZy0VlzwGR1Wzi8O5HtHH0ghljPYr7Q4Qj0Rtn690oZCoN0GhWdiFkbQd8TOJ34FxLH9cWft65784VQOY7YRxjBLV5rFM8tNJR71l4Q45jYXDzyj4ZXeWTOVPlhLrTi4z22pkffIWAAX0vLJXLXUU7at2w0FoZxoAtKsrC9WPX+KvTggZ80/0VHo63F8/meo5Z8HtS14dpYyPO3HeDgc0ZFJv+dhOvAWdHkk3iCm7g4tanIFmynqI8aNqmcHsfoenANeLTQyzST49OFY6sXC/XHE/RWlHCClrdOArNlG5Pk0VbS9XTCvLremvHhcNqezZgpaIcM444SO/RtrBz2bDRCyE=

uU1dTm2vVJ4H8FOYI2UQJ4fXWJxqc1xuO6SAy7MABRfHcfh/iojOchdAMPTZF1DoaSRDQGk00h6ROGKeKFfiGK6fuo2QWUXJqL0ekWXPh94=

abstract class Base {
  abstract getName(): string;

  printName() {
    console.log("Hello, " + this.getName());
  }
}

const b = new Base();

BhfkXcGIyyDXhtvo2nFZFHuQbBXlce6NdV8dAgXf2h7NT3LYTOu4Pe63aCIPaYiddrgnyGwP4vJsBDcP9DLArrWewi9vXXl2n5S0za2tYxUT3Qe+OZprsJr8IGUF+2X3Q802QQpQ18g5XXqyoL6CK1qkcoDAngq/vfu1SZgmNDGxOcRxV1PYOkbWx4P67v05ETz8K9CnQDyf/ZpDFYXFeYqyecdoBdV97ny4Cv9CnBe8N3KUChzmYdT6TMkP4FUQ4gNVR6t1gHBrLhWxZ4lyXfHeWIlQw7dlKL/UBDXFKQm/LoDBZTBhqMlLDlV4+3NhC2kEMG1K2VGKwNLCSlBqO/9CnzTE/HyuNyMYaoldK9QYhyrTXHCnu00CyduBVxXoDiQJa/TVIsxEPTknr0Uod3jZ2aA6WLKa/7ciPLthLnVbd/8QEh7uh/4xkMp9s5PjXYfzzcfO0iPFlp1Vhs+Fog==

abstract class Base {
  abstract getName(): string;
  printName() {}
}

class Derived extends Base {
  getName() {
    return "world";
  }
}

const d = new Derived();
d.printName();

B7HieZhLMxp92Hd8wvTslfkv4s1YPsklMUyr+/h/hCo/c6MD9UVgoAkA5DnGsJBFBMqotMoWR4dqJXUNoTa4GzqhAXBgqoZRIa12ZJhJHQA5iBXoqDe3a8om/XUcXRRlO1oQMJwbm3BTQweeUSvLeiJpl94pnfo7/x9P02iF3eVGRdG3/cjI+ckcheTj5uc1kC+Hv/+MdVh7Mxa1mOoi4r2fP0CKh4dyTzjEW7R/qF2vLCA+s4OUzjK0B2TC1aUazDK7blsAKOKTHtjJa4qdQw==

abstract class Base {
  abstract getName(): string;
  printName() {}
}

class Derived extends Base {
  // forgot to do anything
}