接口
1.接口的作用:可以在定义类的时候限制类的结构
2.接口中的属性都不能有实际的值
csharp
interface myInter{
name:string,
sayHello():void
}
定义类,让类去实现接口
实现接口就是使类满足接口的要求
如下:
csharp
class myClass implements myInter{
name:string;
constructor(name:string){
this.name=name
}
sayHello(){
console.log('hello')
}
}
抽象类
1.以abstract 开头的类是抽象类,抽象类和其他类的区别不大,不能用来实例化(创建对象);
2.抽象类就是专门用来被继承的类
3.抽象类中可以添加抽象方法
csharp
abstract class Animal{
name:string;
constructor(name:str){
this.name=name
// sayHello(){console.log('动物在叫')}
//定义个抽象方法
//抽象方法使用abstract开头,且没有方法体
//抽象方法只能定义在抽象类中,子类必须对抽象方法重写
abstract sayHello():void
}
//Dog继承Animal
class Dog extends Animal{
sayHello(){console.log('汪汪叫')}//重写sayHello方法,不写会有错误提示
}
总结:抽象类和接口的区别
1.抽象类中可以有抽象方法,也可以有普通方法;接口里都是抽象方法
2.用抽象类的时候是extends 继承;用接口的时候用的是implements实现
接口和对象类型的区别
csharp
type myType={name:string,age:number}
interface myInterface{name:string,age:number}
interface myInterface{gender:string}
const obj:myInterface={name:'张三',age:26,gender:'男'}
const obj:myType={name:张三,age:26}
区别1:接口可以重复声明;对象类型不可以,只能申明一个
所以申明类型的时候,可以使用别名的形式(type 别名={}),也可以使用接口的形式