TS —— TS中的面向对象

文章目录


第一节: 什么是对象

程序中所有的操作都需要通过对象来完成,对现实事物的一个抽象,以一系列的属性与方法的集合。比如,人,手机。

第二节:定义class

class Person{

    name:string = "张三";

    static age:number = 19;//静态属性

    readonly height:number = 163;//只读属性无法修改

    say(){

        console.log("会说话..");

    }

}

构造函数:

class Person{

    realname:string;//定义类型

    age:number;

    //构造函数中赋值

    constructor(realname:string,age:number){

        this.realname = realname;

        this.age      = age;

    }

}

第三节:extends继承

子类继承父类的属性与方法。

第四节:super继承

在类的方法中,就是表示当前类的父类。子类调用父类的构造函数,必须写super调用父类的函数,因为重写了父类的函数,父类的函数就无法调用需要用super调用父类的构造函数

第五节:抽象类

定义:abstract  开头的类为抽象类 不能用来创建对象,专门用来继承的类。

抽象类声明的抽象方法,子类必须要实现父类的抽象方法。

(function(){

    abstract class Person{

        realname:string;

        age:number;

        constructor(realname:string,age:number){

            this.realname = realname;

            this.age      = age;

        }

        abstract say():void;

    }

   

    class ChinaPerson extends Person{

         constructor(realname:string,age:number){

             super(realname,age);

         }

         say(){

             console.log("说普通话");

         }

    }   

    const P1 = new ChinaPerson("张三",19);

})();

第六节:接口

定义:接口用来定义一个类中 应该包含哪些属性和方法。

接口定义的属性都没有值,接口定义的方法都是抽象方法。

接口是对类的属性和方法的一个限制。

(function(){

    interface myinterface{

        name:string,

        age:number,

    }

   

    const obj:myinterface={

        name:"张三",

        age:19

    }

    console.log(obj);

})();

用 implements 实现接口。

(function(){

    interface myinterface{

        name:string;

        say():void;

    }

   

    class Person implements myinterface{

        name:string;

        constructor(name:string){

            this.name = name;

        }

        say(){

            console.log("123");

        }

    }

})();

第七节:属性的封装

Public:公共的,修饰的属性可以在任意位置修改。

Private:私有的,只能在类的内部使用。可以用get和set。

Protected:受保护的属性,只能在当前类和子类中访问。

class Person {
  realname: string;
  private age: number;
  protected  height:number;
  constructor(realname: string, age: number,height:number) {
    this.realname = realname;
    this.age = age;
    this.height = height;
  }
  say( ){
  return this.age = 30
  }
  getAge( ){
 return   this.age = 40
  }
}
class Fans extends Person{
    constructor(realname:string,age:number,height:number){
        super(realname,age,height);
    }
    changeAge(){
      return   this.height = 60;
    }
}
const fan = new Fans('Ljy',24,170);
console.log(fan.changeAge());

 

猜你喜欢

转载自blog.csdn.net/Bonsoir777/article/details/128191275
ts