0
点赞
收藏
分享

微信扫一扫

暗黑版GPT流窜暗网 降低犯罪门槛

guanguans 2023-08-11 阅读 61

在这里插入图片描述

导读

类配合实现接口


案例描述:

代码演示:

interface phone {  //共有的打电话功能方法,抽离成一个接口
    How_to_make_a_phone_call()
}
interface photograph {  //共有的照相方法,抽离成一个接口
    Camera()
}

class ios implements phone, photograph {  //苹果手机的类
    How_to_make_a_phone_call() {
        console.log("苹果手机打电话的方式");
    }

    Camera(){
        console.log("苹果手机的照相功能");
        
    }
}
class Android implements phone, photograph {  //安卓手机的类
    How_to_make_a_phone_call() {
        console.log("安卓手机打电话的方式");
    }
    Camera(){
        console.log("安卓手机的照相功能");
    }
}

let i = new ios()
let A = new Android()
console.log(i.How_to_make_a_phone_call()); //苹果手机打电话的方式
console.log(A.How_to_make_a_phone_call());  //安卓手机打电话的方式
console.log(i.Camera()); //苹果手机的照相功能
console.log(A.Camera());  //安卓手机的照相功能

在 implements 后边可以跟随多个接口,以此来关联多个接口规范。


接口继承接口

注意:区别和上面两套代码对比后的不同。

interface phone {  //共有的打电话功能方法,抽离成一个接口
    How_to_make_a_phone_call()
}
interface photograph {  //共有的照相方法,抽离成一个接口
    Camera()
}

interface functionality extends phone,photograph{   //接口继承接口
    addfn() //继承接口后还可以添加新的功能
}

class ios implements functionality {  类上面就可以简化,跟随继承后的接口
    How_to_make_a_phone_call() {
        console.log("苹果手机打电话的方式");
    }
    Camera(){
        console.log("苹果手机的照相功能"); 
    }
    addfn(){
        console.log("苹果手机的新功能");
    }
}
class Android implements functionality {  //类上面就可以简化,跟随继承后的接口
    How_to_make_a_phone_call() {
        console.log("安卓手机打电话的方式");
    }
    Camera(){
        console.log("安卓手机的照相功能");
    }
    addfn(){
        console.log("安卓手机的新功能");
    }
}

let i = new ios()
let A = new Android()
console.log(i.How_to_make_a_phone_call()); //苹果手机打电话的方式
console.log(A.How_to_make_a_phone_call());  //安卓手机打电话的方式
console.log(i.Camera()); //苹果手机的照相功能
console.log(A.Camera());  //安卓手机的照相功能
console.log(i.addfn()); //苹果手机的照相功能
console.log(A.addfn());  //安卓手机的照相功能

接口继承类

如下案例:

class Point {
    x: number;
    y: number;
    constructor(x: number, y: number) {
        this.x = x;
        this.y = y;
    }
    click()
}

interface Point3d extends Point {  //接口通过  extends 继承了 类
    z: number;
}

//而此时 接口的约束规范里包含了,Point 类类型的校验规则
//所以当我们把这个规则用作于对一个对象的判断约束时,如果不包含 Point 中的属性方法就会报错


let point3d: Point3d = {};  //会报错 类型“{}”缺少类型“Point3d”中的以下属性: z, x, yts(2739

let point3d: Point3d = {  //不会报错,满足了 接口校验规范
    x: 123,
    y: 456,
    click() {
        console.log("实现");
    },
    z: 789
};  

总结

本章节主要讲述了,在 TypeScript 中,class类与 接口【Interfaces】,搭配一起使用的时候,会有怎样的表现形式,以及实用的点是什么。这在一定程度上,更加提高的我们的编码灵活性,所以这一知识点也值得我们掌握。


举报

相关推荐

0 条评论