类与接口总结

类与接口

1.类实现接口

实现(implements)是面向对象中的一个重要概念。一般来讲,一个类只能继承自另一个类,有时候不同类之间可以有一些共有的特性,这时候就可以把特性提取成接口(interfaces),用 implements 关键字来实现。

(1)案例1:

interface Alarm {
    alert();
}
 
class Door {
}
 
class SecurityDoor extends Door implements Alarm {
    alert() {
        console.log('SecurityDoor alert');
    }
}
 
class Car implements Alarm {
    alert() {
        console.log('Car alert');
    }
}

(2)案例2:一个类可以是实现多个接口

interface Alarm {
    alert();
}
 
interface Light {
    lightOn();
    lightOff();
}
 
class Car implements Alarm, Light {
    alert() {
        console.log('Car alert');
    }
    lightOn() {
        console.log('Car light on');
    }
    lightOff() {
        console.log('Car light off');
    }
}

2.接口继承接口(接口与接口之间可以是继承关系)

interface Alarm {
    alert();
}
 
interface LightableAlarm extends Alarm {
    lightOn();
    lightOff();
}

3.接口继承类

class Point {
    x: number;
    y: number;
}
 
interface Point3d extends Point {
    z: number;
}
 
let point3d: Point3d = {x: 1, y: 2, z: 3};

4.混合类型

(1)可以使用接口的方式来定义一个函数需要符合的形状

interface SearchFunc {
    (source: string, subString: string): boolean;
}
 
let mySearch: SearchFunc;
mySearch = function(source: string, subString: string) {
    return source.search(subString) !== -1;
}

(2)接口定义函数内部的属性和方法

interface Counter {
    (start: number): string;
    interval: number;
    reset(): void;
}
 
function getCounter(): Counter {
    let counter = <Counter>function (start: number) { };
    counter.interval = 123;
    counter.reset = function () { };
    return counter;
}
 
let c = getCounter();
c(10);
c.reset();
c.interval = 5.0;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值