(() => { /* 定义一个接口,接口中有3个抽象方法如下。 (1)“fact(m:number):number;”方法的功能为求参数的阶乘。 (2)“intPower(m:number,n:number):number;”方法的功能为求参数m的n次方。 (3)“findFactor(m:number,n:number):boolean;”方法的功能为判断参数m加上参数n的和是否大于100。 */ /* interface ITest { fact(m: number): number intPower(m: number, n: number): number findFactor(m: number, n: number): boolean } class Realize implements ITest { fact(m: number): number { let sum = 1 for (let i = 1; i <= m; i++) { sum = sum * i } return sum } intPower(m: number, n: number): number { return Math.pow(m,n) } findFactor(m: number, n: number): boolean { if( m + n > 100){ return true } else { return false } } } let r1 = new Realize() console.log(r1.fact(6)) console.log(r1.intPower(4,2)) console.log(r1.findFactor(50,60)) */ /* 创建一个接口IShape,接口中有一个求面积的方法“getArea()”和求周长的方法“getLength()”。 定义一个正方形类Square,该类实现了IShape接口。Square类中有一个属性a表示正方形的边长,在构造方法中初始化该边长。 创建Square类的实例对象,求该正方形对象的面积和周长 */ /* interface Ishape{ getArea(): number getLength(): number } class Square implements Ishape{ a: number constructor(a: number){ this.a = a } getArea(): number { return Math.pow(this.a,2) } getLength(): number { return 4*this.a } } let square = new Square(5) console.log('正方形的面积为'+ square.getArea()) console.log('正方形的周长为'+ square.getLength()) */ /* interface Person{ eat(): void sleep(): void } class Student implements Person{ eat(): void { console.log('学生去食堂吃饭') } sleep(): void { console.log('学生去宿舍睡觉') } } class Teacher implements Person{ eat(): void { console.log('老师去教室食堂吃饭') } sleep(): void { console.log('老师去学校公寓睡觉') } } class Parent implements Person{ eat(): void { console.log('家长去招待所吃饭') } sleep(): void { console.log('家长去招待所睡觉') } } let stu1 = new Student() let tea1 = new Teacher() let par1 = new Parent() stu1.eat() stu1.sleep() tea1.eat() tea1.sleep() par1.eat() par1.sleep() */ /* 定义墨盒接口InkBox,约定墨盒的颜色。 定义纸张接口Paper,约定纸张的大小。 定义打印机类,引用墨盒接口、纸张接口实现打印功能。 墨盒厂商按照InkBox接口实现ColorInkBox类和GrayInkBox类。 纸张厂商按照Paper接口实现A4Paper类和B5Paper类。“组装”打印机,让打印机通过不同的墨盒和纸张实现打印功能。 程序运行效果如下: 使用黑白墨盒在A4纸上打印。 使用黑白墨盒在B5纸上打印。 使用彩色墨盒在A4纸上打印。 使用彩色墨盒在B5纸上打印。 */ })()