【发布时间】:2016-07-06 22:30:52
【问题描述】:
我需要强制类实现一些方法,例如 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 方法,但如果我没有在 Animal 类中实现 onWalk() 会出错,我需要与 @987654329 相同@在TypeScript?
【问题讨论】:
标签: class oop typescript