接口规定类必须具有的功能

接口:规定类必须具有的功能

interface A {
    // 接口没有构造函数
    num1: number
    // 接口中的方法不能有方法体,必须写上返回值类型
    a1(): void;
}
// 接口不能被实例化(访问不了)
// let a:A=new A()
// 实现类implements :必须有接口中的属性,必须重写接口中的方法
class B implements A {
    num1: number;
    a1(): void {
        console.log('重写的接口的函数');
    }
    constructor(num1: number) {
        this.num1 = num1
    }
}
let bb: B = new B(1)
bb.a1()



interface Usb {
    in(): void
    outs(): void
}
class Fs implements Usb {
    type: string
    ts() {
        console.log('调节风扇速度');
    }
    constructor(type: string) {
        this.type = type
    }
    in(): void {
        console.log('风扇插入Usb');
    }
    outs(): void {
        console.log('风扇拔出Usb');
    }
}
let fss: Fs = new Fs('海尔')
fss.in()
fss.ts()
fss.outs()

// 类型  滚动
class Sb implements Usb {
    type: string
    constructor(type: string) {
        this.type = type
    }
    run() {
        console.log('鼠标滚动');
    }
    in(): void {
        console.log('鼠标插入Usb');
    }
    outs(): void {
        console.log('鼠标拔出Usb');
    }
}
let sb: Sb = new Sb('有线')
sb.in()
sb.run()
sb.outs()
// 容量  写数据  读数据
class Up implements Usb {
    rl: string
    constructor(rl: string) {
        this.rl = rl
    }
    write() {
        console.log('写数据');
    }
    read() {
        console.log('读数据');
    }
    in(): void {
        console.log('U盘插入Usb');
    }
    outs(): void {
        console.log('U盘拔出Usb');
    }
}
let up: Up = new Up('300G')
up.in()
up.write()
up.read()
up.outs()



class Door {
    openDoor() {
        console.log('开门');
    }
    closeDoor() {
        console.log('关门');
    }
}
interface Locks {
    openLock(): void
    closeLock(): void
}
interface Ring {
    playRing(): void
}
class LockDoor extends Door implements Locks, Ring {
    openLock(): void {
        console.log('开锁');
    }
    closeLock(): void {
        console.log('上锁');
    }
    playRing(): void {
        console.log('铃响了......');
    }
}
let lc: LockDoor = new LockDoor()
lc.openLock()
lc.openDoor()
lc.playRing()
lc.closeDoor()
lc.closeLock()


练习:

普通手机 型号 品牌 打电话 发短信

智能手机 播放音乐 视频 上网 拍照

1.普通手机+音乐
2.智能手机

class Ptel {
    type: string
    pp: string
    constructor(type: string, pp: string) {
        this.type = type
        this.pp = pp
    }
    call(): void {
        console.log('打电话');
    }
    send(): void {
        console.log('发短信');
    }
    info(){
        console.log(`${this.pp}品牌的${this.type}的手机`);
    }
}
interface Music {
    music(sing:string):void
}
interface Vidio{
    vidio(vidio:string):void
}
interface Wife{
    wife(net:string):void
}
interface Photo{
    photo():void
}
// 普通手机
class Oneph extends Ptel implements Music{
    constructor(type: string, pp: string){
        super(type,pp)
    }
   music(sing:string): void {
       console.log(`播放音乐:${sing}`);
   }
}
let ph1:Oneph=new Oneph('A2','oppo')
ph1.info()
ph1.call()
ph1.send()
ph1.music('My heat')
class Twoph extends Ptel implements Music,Vidio,Wife,Photo{
    music(sing:string): void {
        console.log(`播放音乐:${sing}`);
    }
    vidio(vidio:string): void {
        console.log(`视频:${vidio}`);
    }
    wife(net:string): void {
        console.log(`上网;${net}`);
    }
    photo(): void {
        console.log('拍照');
    }
}
let ph2:Twoph=new Twoph('Y30','vivo')
ph2.info()
ph2.call()
ph2.send()
ph2.music('love')
ph2.photo()
ph2.vidio('宠物')
ph2.wife('inter')


练习2:

计算机 品牌 型号
cpu 品牌,主频 介绍
硬盘 容量 介绍
内存 容量 介绍

 //组装电脑 
class Com{
    Combrand:string
    Comtype:string
    constructor(Combrand:string,Comtype:string){
        this.Combrand=Combrand
        this.Comtype=Comtype
    }
    info(){
        console.log(`这是${this.Combrand}品牌${this.Comtype}型号的电脑,系统如下:`);
    }
}
interface Cpu{
    Cpubrand(brand:string):void
    Cpuzp(zp:string):void
    // Cpuinfo(info:string):void
}
interface Yp{
    Yprl(zp:string):void
    // Ypinfo(info:string):void
}
interface Nc{
    Ncrl(rl:string):void
    // Ncinfo(info:string):void
}
class Comput extends Com implements Cpu,Yp,Nc{
    constructor(Combrand:string,Comtype:string){
        super(Combrand,Comtype)
    }
    Cpubrand(brand: string): void {
        console.log(`Cpu的品牌是:${brand}`);
    }
    Cpuzp(zp: string): void {
        console.log(`Cpu的主频是:${zp}`);
    }
    

```
Yprl(rl: string): void {
    console.log(`硬盘的容量是:${rl}`);
}
Ncrl(rl: string): void {
    console.log(`内存的存储量是:${rl}`);
}
```

}
let com:Comput=new Comput('华为','i9')
com.info()
com.Cpubrand('Intel')
com.Cpuzp('3.8GHz')
com.Yprl('3000GB')
com.Ncrl('12GB')


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值