5、继承与抽象-typescript

继承在类的拓展使用中起到非常重要的作用,今天来总结一下继承及抽象类的概念和应用。

一、继承

        当我们定义了一个大类,其本身所带的属性和方法可以通过继承给一个小类。同样的,都是抽象类型的概念。

        在大类中的方法可以被小类进行调用,同时也会被小类进行复写,如果你需要对大类方法在继承的小类中进行输出,需要额外加上super.方法()函数。

//大类
class Person(){
    name: string = "";

//方法定义,一定要用this.name,调用方法的参数。    
    say(){
        document.write("I am a person, my name is:" + this.name);
    }
}

//继承小类
class Student extends Person{
    num: number = 0;
    score:number = 0;

//如果不加上super函数调用,小类用同样方法,会覆盖大类方法。
    say(){
        super.say();
        document.write("I am a student, my name is:” + this.name);
    }
}

//实例化类,为对象
let a = new Student();
a.name = "ww";
a.say();

二、抽象类与抽象方法

        抽象类在使用当中,可以规束类的使用和方法调用。只能用继承,本身不可以被实例化为对象。

        抽象类的方法,如果不是抽象方法,可以不被继承的类所调用;但是如果抽象类中定义了抽象方法,则在继承类中也同样需要对该抽象方法进行调用。

//抽象类只能继承,不能直接实例化。
abstract class Person{
    name :string = "";

//非抽象方法
    run(){
    
    }

//抽象方法
    abstract eat(){
    
    }
}

//抽象类的继承中,需要将其抽象方法同样继承
class Student extends Person{

//抽象类的抽象方法被继承,算上强制性的重写
    eat(){

    }
}

//实例化对象
//父类指针可以指向子类对象;
//虽然Person不能直接被实例,但是可以通过建立它的一个变量,继承它的抽象继承类,从而调用继承类的方法。
let a: Person = new Student();
a.eat();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值