TypeScript 创建抽象类
抽象简介
我们希望读者在实现抽象类之前,先熟悉抽象类和抽象类的要求。抽象的意思是隐藏。它被用来向用户和一些开发者隐藏低级别的代码实现。此外,它被用来只显示方法的必要信息,而不是显示整个复杂的方法实现。
创建抽象类
我们可以使用abstract关键字来定义抽象类或方法。抽象类可以包含普通和抽象类型的方法。在抽象类中,我们需要实现功能或普通方法,只需要声明抽象方法。
我们可以使用任何其他类来继承抽象类,但是我们需要将抽象类的所有抽象方法实现到继承类中。如果我们不想在继承类中实现抽象方法,我们需要使用abstract关键字使继承类变成抽象类。
另外,我们不能创建抽象类的对象,但我们可以创建继承类的对象并使用抽象类的方法。抽象类的限制是,我们不能使用多个抽象类实现多个继承。
语法
用户可以按照下面的语法来创建抽象类并将其继承给其他类。
步骤
- 第1步–定义名为sample的抽象类,它包含名为propert1和propert2的属性。
-
第2步 – 同时,将构造函数添加到样本类中,以初始化property1和property2的值。
-
第3步 – 在抽象类中声明抽象方法名称demo()。同时,定义抽象类的save()方法,这个非抽象方法可以打印property1和property2的值。
-
第4步–定义测试类,一个继承了样本类的非抽象类。同时,在测试类中添加字符串类型的property3。
-
第5步 – 为测试类添加构造函数,它需要3个参数,使用前两个参数,我们调用超类的构造函数,也就是样本类。
-
第6步–在测试类中实现样本类的demo()方法,该方法打印出属性3的值。
示例 1
在下面的例子中,我们已经定义了包含抽象方法的抽象类。在继承的测试类中,我们实现了样本类的抽象方法。接下来,我们用3个参数创建了测试类的对象,并用它来调用demo()和save()方法。
在上面的例子中,我们把save()方法的实现从继承的类测试中隐藏起来。我们允许开发者按照自己的意愿实现demo()方法,但隐藏了其他类的信息,如property1、property2和save()方法的实现。
现在,用户正确理解了使用抽象类的动机,以及我们如何使用它来隐藏信息,并可以只显示所需的信息。
输出
它将产生以下输出 —
示例 2
在下面的例子中,class1是抽象类,它包含了名为method1的抽象方法的声明。 class2只包含method2()的定义。它扩展了class1,但并没有实现名为method1()的抽象方法。
之后,我们定义了class3并通过class2继承了它。同时,我们在class3中定义了类的方法1。最后,我们创建了class3的对象并调用了method1()和method2()。
上面的例子告诉我们,如果我们用任何一个类来继承抽象类,并且不想在继承的类中实现抽象方法,我们需要使继承的类成为抽象的。
输出
用户在本教程中学习了如何实现抽象类。现在,用户可以理解我们是如何利用抽象类和抽象方法隐藏类的其他信息的。
另外,用户可以使用接口来进行抽象化。在TypeScript中,接口的所有方法都是抽象的,它不允许使用非抽象的方法。另外,我们还可以使用接口进行多重继承。