2016 - 2024

感恩一路有你

python学了有什么用 python下的抽象类的用途和意义?

浏览量:2108 时间:2021-03-11 21:20:50 作者:admin

python下的抽象类的用途和意义?

抽象类不完整,只能用作基类。

它不同于非抽象类:1。抽象类不能直接实例化,对抽象类使用new运算符是编译时错误。

尽管某些变量和值在编译时可以是抽象类型,但这些变量和值必须为null或包含对从抽象类派生的非抽象类实例的引用。

2. 允许(但不要求)抽象类包含抽象成员。

3. 抽象类不能被密封。

从抽象类派生非抽象类时,这些非抽象类必须具体实现所有继承的抽象成员,以便重写这些抽象成员。

在以下示例中:抽象类a{public abstract void f()}抽象类B:a{public void g(){}}抽象类C:B{public override void f(){//f}}抽象类a引入抽象方法f。

类B引入另一个方法g,但由于它不提供f的实现,B也必须声明为抽象类。

C类重写F并提供具体的实现。

由于C中没有抽象成员,因此可以(但不是必须)将C声明为非抽象类。

抽象类与接口密切相关。

但是接口比抽象类更抽象,主要体现在它们的区别上:1)类可以实现无限的接口,但只能继承一个抽象类(或任何其他类型)的接口,从抽象类派生的类仍然可以实现接口,因此,接口被用来解决多重继承的问题。

2)抽象类可以有非抽象方法,接口不能,抽象类中的方法只是一个声明,没有具体实现的方法必须用public修改。

3)抽象类中的成员变量可以由不同的修饰符修改,接口中的成员变量默认为静态final。

4)这也是最重要的一点,其实质是“抽象类是对象的抽象,接口是行为规范”。

为什么使用抽象基类在Python?

有时有些类型有一些共同的特点,可以抽象形成基类,但基类本身不能实例化,只有子类可以继承并实现抽象方法实例化子类对象,这样的类称为抽象类。例如,移动电话、计算机和电视可以归类为电子设备。电子设备是抽象类,具有诸如开机、运行和关机等抽象方法。但是,不能直接新建电子设备类的对象,因为不能指定其特定的形状、功能和其他信息。您只能从电子设备类中派生出手机、计算机和电视机,并将它们分开本文给出了不同开机、运行和关闭方法的具体实现,然后对这些类的对象进行了新的定义。这就是多态性的体现。静态语言(如C/Java)本机支持多态性,并具有抽象关键字,可用于定义抽象类。Python是duck类型的语言,它没有真正的多态性,因此它没有该语言的原生抽象类支持,只能通过第三方封装类如ABC simulation来实现。对于没有接触过C和Java的Python学习者来说,很难理解。

python学了有什么用 python有啥用 新手用python2还是3

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。