我需要强制该类实现某些方法,例如onCreate()
,在其他语言中,例如php
我们可以看到以下内容:
<?php
// Declare the interface 'Movement'
interface MovementEvents
{
public function onWalk($distance);
}
// Declare the abstract class 'Animal'
abstract class Animal implements MovementEvents{
protected $energy = 100;
public function useEnergy($amount){
$energy -= $amount;
}
}
class Cat extends Animal{
// If I didn't implement `onWalk()` I will get an error
public function onWalk($distance){
$amount = $distance/100;
$this->useEnergy($amount)
}
}
?>
请注意,在我的示例中,如果我未实现onWalk()
该代码将无法工作,并且您将收到错误,但是当我执行TypeScript
以下操作时:
// Declare the interface 'Movement'
interface MovementEvents
{
onWalk: (distance)=>number;
}
// Declare the abstract class 'Animal'
abstract class Animal implements MovementEvents{
protected energy:number = 100;
public useEnergy(amount:number):number{
return this.energy -= amount;
}
}
class Cat extends Animal{
// If I didnt implment `onWalk()` I will get an error
public onWalk(distance:number):number{
var amount:number = distance/100;
return this.useEnergy(amount);
}
}
没有错误将显示我是否实现了on walk方法,但是如果我没有onWalk()
在Animal
类中实现,它将给出一个错误,我需要与php
in相同TypeScript
。
您可以Animal
使用abstract
要在子类中强制使用的方法的关键字和相同的关键字来声明您的类。
abstract class Animal {
abstract speak(): string;
}
class Cat extends Animal {
speak() {
return 'meow!';
}
}
您可以在《TypeScript手册》中找到有关抽象类和方法的更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句