typescript--类

1 类的定义

class Person{
     name:string;
     age:number;
     constructor(name:string,age:number){
          this.name = name;
          this.age = age;
     }
     print(){
         return this.name+":"+this.age
    }
}
var p = new Person("zhangsan",20)
console.log(p.print)

2 类的继承

class Student extends Person{
     cardnumber:string;
     school:string;
     constructor(cardnumber:string,school:string){
            super("zhangsan",20)//执行父级的构造函数
            this.cardnumber = cardnumber;
            this.school=school
     }
     dohomework(){
         return this.name+"今年"+this.age+"岁,就读于"+this.school+"编号"+this.cardnumber
    }
}
var stu1 = new Student("10001","北京大学")

3 访问修饰符:(要明白用这个声明,什么时候可以访问,什么时候不可以访问)
(1)public/private/protected
class Person{
     public name:string;
     private age:number; 

     protected email:string;
     constructor(name:string,age:number){
          this.name = name;
          this.age = age;

          this.email = mail;
     }
     print(){
         return this.name+":"+this.age
    }
}
var p = new Person("zhangsan",20)
console.log(p.name)

console.log(p.age)

console.log(p.email)

此时只有p.name可以访问

(2)在继承中

class student extends Person {

      show(){

            console.log(this.name,this.age,this.email)//此时this.age不能访问

      }

}

public:任何地方可以访问

private:私有的,只有自己可以访问(例如爸爸与儿子,爸爸的私房钱是私有的,儿子不可以用)

protected:自己跟子类可以访问(例如爸爸的房子,儿子也可以用)

4 静态属性和静态方法

class Person{
    //实例属性
    name:string;
    static age:number;//静态属性
    email:string;
    constructor(name:string,age:number,email:string){
        this.name = name;
        this.age = age;
        this.email = email;
    }
    //实例方法
    print(){
        return this.name+":"+this.age
    }
    //静态方法
    static show(){
         console.log("show 方法")
    }
}
调用静态方法:
Person.show();
//调用实例方法
var  p1 = new Person("zhangsan",22,"ss.qq.com")
console.log(p1.print())

5 多态

class Animal{
    eat(){
        console.log("animal eat")
    }
}
class Cat extends Animal{
    eat(){
        console.log("猫吃鱼")
    }
}
class Dog extends Animal{
    eat(){
        console.log("狗吃肉")
    }
}
var c1 = new Cat();
c1.eat()

抽象类/抽象方法
(1)抽象类是提供其他类继承的基类(父类),不能直接被实例
(2)抽象方法只能包含在抽象类中,抽象类中可以包含抽象方法和非抽象方法
(3)子类继承抽象类,实现抽象方法
(4)定义

abstract class Animal{
    abstract eat();
    run (){
        console.log("run run run")
    }
}
class Cat extends Animal{
    eat(){
        console.log("猫吃鱼")
    }
}
class Cat extends Animal{
    eat(){
        console.log("狗吃肉")
    }
}
var c1 = new Cat()
c1.eat()
var d1 = new Dog()
d1.eat()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值