• 5、继承与抽象-typescript


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

    一、继承

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

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

    1. //大类
    2. class Person(){
    3. name: string = "";
    4. //方法定义,一定要用this.name,调用方法的参数。
    5. say(){
    6. document.write("I am a person, my name is:" + this.name);
    7. }
    8. }
    9. //继承小类
    10. class Student extends Person{
    11. num: number = 0;
    12. score:number = 0;
    13. //如果不加上super函数调用,小类用同样方法,会覆盖大类方法。
    14. say(){
    15. super.say();
    16. document.write("I am a student, my name is:” + this.name);
    17. }
    18. }
    19. //实例化类,为对象
    20. let a = new Student();
    21. a.name = "ww";
    22. a.say();

    二、抽象类与抽象方法

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

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

    1. //抽象类只能继承,不能直接实例化。
    2. abstract class Person{
    3. name :string = "";
    4. //非抽象方法
    5. run(){
    6. }
    7. //抽象方法
    8. abstract eat(){
    9. }
    10. }
    11. //抽象类的继承中,需要将其抽象方法同样继承
    12. class Student extends Person{
    13. //抽象类的抽象方法被继承,算上强制性的重写
    14. eat(){
    15. }
    16. }
    17. //实例化对象
    18. //父类指针可以指向子类对象;
    19. //虽然Person不能直接被实例,但是可以通过建立它的一个变量,继承它的抽象继承类,从而调用继承类的方法。
    20. let a: Person = new Student();
    21. a.eat();

  • 相关阅读:
    Linux服务器配置信息查询命令
    Java当中的BIO模型
    实战:如何优雅地扩展Log4j配置?
    Python中如何使用__slots__限制对象属性来节约内存
    Vue:CSR(客户端渲染)、SSR(服务端渲染)、同构渲染
    光模块厂家如何实现千兆和万兆的大规模量产
    .NET Core 使用Swagger给控制器分组
    redis相关面试题
    刷题——Python篇(3)字符串
    苍穹外卖--实现公共字段自动填充
  • 原文地址:https://blog.csdn.net/m0_74768094/article/details/139955429