day33

类类型接口 

静态属性和静态方法

区分方法就是必须要有    new什么东西  完成什么类

第二种类类型接口   字面量类类型接口

接口继承

接口继承接口

继承多个接口

接口可以继承多个,但是类只能继承一个

接口不能继承对象

接口继承类,仅继承类中对于实例化属性和实例化方法描述,并不继承值和内容
如果接口需要继承某个类,要求类中的所有实例化属性和方法必须是共有public

所有属性的修饰符 public(共有)  private(私有)   protected(受保护)

如果希望这个属性和方法暴露给实例化对象(实例化对象可以调用则使用public),如果这个属性和方法在子类中
需要调用或者重新,就需要使用protected,如果这个属性和方法要求只能在当前类中调用,使用private
优先使用private,如果有继承并需要重写或者使用,可以修改为protected,当类写完后将实例化对象需要暴露
调用的才可以设置为public

// 实例化可以调用的方法和属性一般就属于暴露的属性和方法

// var b:Box=new Box();

// console.log(b.a);

// 类不需要使用public

类中方法是否需要返回值

禁止给构造函数设置返回类型,禁止在构造函数中使用return返回任何内容,可以使用return跳出

存取器定义时,setter不能设置返回类型,并且不能使用return返回任何值,必须设置一个参数

getter不能设置参数,必须设置返回值,尽量要求getter中的返回值和setter中参数类型完全一致

构造函数的修饰符

当构造函数设置为私有的时候,这个类就在这个类以外实例化

 当构造函数设置为私有的时候,这个类也是不能被继承的

 var b:Box=new Box();

console.log(b);

console.log(Box.getBox());

当构造函数设置为受保护的时候,这个类就可以被子类继承,并且在子类中设置共有的构造函数

 在父类中设置的私有的方法和构造函数,在子类中无法重设为共有,但是受保护的可以在子类中修改为共有

单例模式

 单例要求这个类只能创造一个实例化对象,并且这个实例化对象在任何地方都可以直接调用

普通类

为什么需要单例

// 下面案例中A类和B类中都有自身重新实例化的Box的对象,因此A类中和B类中box不是同一个,所以属性是不相同的

单例模式

// 下面的写法,每次调用get Instance就会new 一个新的实例化对象

 下面的类中调用了相同的实例化对象

// 修饰符用于静态属性和方法

抽象类  抽象类一般用于基类,不能实例化

// 使用abstract定义类,这个类就是抽象类

// abstract class Box{

//     public a:number=1;

//     // 抽象属性,必须设置初始值

//     // 抽象属性和抽象方法必须使用public或者protected来定义不能使用private

//     public abstract b:number;

//     constructor(){

//     }

//     public play():void

//     {

//         console.log("play");

//     }

//     // 抽象方法,不能设置方法的内容

//     public abstract run():void;

// }

// interface IA{

//     b:number;

//     run():void;

// }

// 当类继承抽象类时,需要对于抽象类中的属性设定初始值,需要对于抽象类中抽象方法重新设置方法的内容

/*

 一般来说,当定义的类只是作为基础类别,用于继承,并不是实际解决问题,这个类可以设置抽象类

 抽象类的优点,在于抽象类可以理解为是类和接口的结合体,将共同都需要执行相同内容的属性和方法

 设置为抽象类普通属性和方法,将需要子类具体实现的内容方法和属性设置为抽象属性和方法,由子类

 具体自身去实现,这样不同的子类可以同一个方法实现不同的效果

接口内定义的属性和方法,在类中实现时一定是public

对象的属性映射

// var obj:{a:number,b:number}={a:1,b:2};

// for(var key in obj){

//     // 不确定key是obj的属性名a或者b

//     let k:keyof {a:number,b:number}=key  as keyof {a:number,b:number}

//     console.log(key,obj[k]);

// }

// keyof 接口  指这个属性就是接口的属性

// interface IO{

//     a:number;

//     b:number;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值