TSclass类

TS构造函数:
它是通过class类的形式去声明的一个构造函数 ,在这个函数体内先定义好属性的类型,通过constructor
去定义原型对象通过传递参数的形式去给新建的对象添加属性,constructor中通过this指向需要添加的属性名,
并在构造函数中定义一个方法,通过new 这个构造函数去创建实例对象,并传递对应类型的参数。和调用里面
的方法。需要注意的是构造函数内有几个属性那么就必须得传递几个否则会报错。

TS继承:
它和TS构造函数一样通过class类的形式去声明的一个构造函数 ,在这个函数体内先定义好属性的类型,
通过constructor去定义原型对象通过传递参数的形式去给新建的对象添加属性,constructor中通过
this指向需要添加的属性名,并在构造函数中定义一个方法,通过new 这个子类构造函数去创建实例对象,
并传递对应类型的参数,区别在于创建了class子类构造函数,通过extends(EX腾斯)去继承了父类的属性和方法,
缺点就是:如果子类中的方法和父类中的方法重名则会覆盖父类的方法,这叫做方法重写。

TS的super():
它和TS构造函数一样通过class类的形式去声明的一个构造函数 ,在这个函数体内先定义好属性的类型,
通过constructor去定义原型对象通过传递参数的形式去给新建的对象添加属性,constructor中通过
this指向需要添加的属性名,并在构造函数中定义一个方法,通过new 这个子构造函数去创建实例对象,
区别:super在子类的constructor中调用,是在子类中执行了父类的构造函数,其实是无关父类原型的,
如果想要改变父类的原型方法,可以直接重名覆盖,如果想利用父类原型方法,也可以用super.method来引用。
如果你不在constructor里写super并传入相应参数,那么相当于只继承原型方法。
每个类自己的constructor其实就是定义自身的属性和方法,而不是原型上的。
可以直接使用this.abc来添加,this指自己,super指父类。
子类继承的时候不写constructor,则默认会把父类自身的属性和方法生成到子类。

TS的abstract:
以abstract开头的类是抽象类,
抽象类和其他类区别不大,只是不能用来创建对象
1.抽象类作为类一定有构造器,而且抽象类必须有构造器。
提供给子类创建对象调用父类构造器使用的。
2.抽象类虽然有构造器但是抽象类不能创建对象。
抽象方法没有方法体,创建对象不能执行,所以不能创建对象。
3抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

4抽象类的子类,必须重写抽象父类中所有的抽象方法,否则子类也必须定义成抽象类。

5抽象类存在的意义是为了被子类继承,抽象类体现的是模板思想。
理解:抽象类中已经实现的是模板中确定的成员,抽象类不确定如何实现的定义成抽象方法,
交给具体的子类去实现。


抽象类就是专门用来被继承的类
抽象类中可以添加抽象方法
通过abstract定义一个抽象方法
抽象方法使用 abstract开头,没有方法体
抽象方法只能定义在抽象类中,子类必须对抽象方法进行重写

TS多态:
    多态 ,一种事物的不同表现形态。比如先声明变量f是Animal类型,
    具体是Dog还是Cat,在new 对象时才知道
    如果是Dog,则f.sayHello()调用的是Dog类中的sayHello方法;
    如果是Cat,则f.sayHello()调用的是Cat类中的sayHello方法,这就是多态!!!


 

你可能感兴趣的:(java,javascript,前端)