关键区别——oop中的多态与继承
面向对象程序设计(OOP)是软件开发中常用的方法。许多编程语言支持面向对象编程。面向对象编程是一种使用类和对象设计程序的方法。OOP中的类是创建对象的蓝图。类具有属性和方法。对象是类的实例。OOP包含继承、多态、抽象和封装四大支柱。本文讨论了OOP中多态与继承的区别。OOP中多态性与继承的关键区别在于多态性是一个对象以多种方式表现的能力,而继承则是使用现有类的属性和方法创建一个新的类。
目录
1. 概述和主要区别
2. 什么是OOP中的多态性
3. 什么是OOP中的继承
4. OOP中多态性与继承性的相似性
5. 并排比较——表格形式的OOP中多态性与继承性
6. 摘要
什么是oop中的多态性(polymorphi** in oop)?
多态性是指多种形式。一个物体可以有多种行为。多态性可分为两类。它们正在过载和覆盖。
超载
参考下面用Java编写的程序。
根据上述程序,创建一个类型为A的对象。打电话时目标金额();它将给出与sum()方法相关的输出。当呼叫目标金额(2,3);它将给出与sum(int a,int b)相关的输出。可以观察到,同一物体根据情况有不同的行为。当存在多个同名但参数不同的方法时,称为重载。它也被称为静态绑定或编译时多态性。
压倒一切
另一种多态性是重写的。参考下面用Java编写的程序。
根据上面的程序,在类a中有一个方法display(),类B是从类a扩展而来的,因此类a中的所有方法都可以被类B访问,这就是继承。稍后将进一步描述继承概念。
类B也有相同的display()方法。当创建类型A的对象并调用显示方法时,输出将给出B。类A的显示方法被类B的显示方法覆盖。所以,输出是B。
当存在名称和参数相同但在两个不同类中的方法,并且它们通过继承链接时,称为重写。它也被称为后期绑定、动态绑定、运行时多态性。重载和重写称为多态性。它是面向对象编程中的一个主要概念。
什么是oop中的继承(inheritance in oop)?
参考下面用Java编写的程序。
根据上面的程序,A类有sum()方法,B类有sub()方法。
类A的sum()方法可以在B类中使用extend关键字。重用现有类中的属性和方法来创建新类称为继承。即使在类B中没有sum()方法;它是从类A继承的。继承对于代码的可重用性很有用。较老的类称为基类、超类或父类。派生类称为子类或子类。
继承类型
遗传有多种类型。它们分别是单级继承、多级继承、多重继承、层次继承和混合继承。
单一继承
在单继承中,有一个超类和一个子类。如果类A是超类,类B是子类,那么类B可以访问类A的所有属性和方法,只有一个级别,因此称为单级继承。
多层次继承
在多级继承中,有三个级别的类。中间类继承自超级类。子类继承自中间类。如果有A,B,C三个类,A是超类,B是中间类。然后B从A继承,C从B继承,这是一个多级继承。
多重继承
在多重继承中,有许多超类和一个子类。如果有三个超类被称为A、B、C和D是子类,则D类可以继承A、B和C。C++语言中支持多继承。Java或C等编程语言不支持它。接口用于在这些语言中实现多重继承。
等级继承
如果有一个类称为超类,而B、C是子类,则这些子类可以继承类A的属性和方法,这种继承类型称为层次继承。
杂交遗传
还有另一种特殊的继承类型,称为混合继承。它是多层次、多继承的结合体。如果A、B、C和D是类,B继承自A,D继承自B和C,则为混合继承。
多态性(polymorphi**)和oop中的继承(inheritance in oop)的共同点
- 两者都是面向对象编程的概念。
多态性(polymorphi**)和oop中的继承(inheritance in oop)的区别
OOP中多态与继承 | |
多态性是一个对象以多种方式表现的能力。 | 继承是使用现有类的属性和方法创建一个新类。 |
使用 | |
多态性用于对象在编译时和运行时调用哪种形式的方法。 | 继承用于代码的可重用性。 |
实施 | |
多态性是在方法中实现的。 | 继承是在类中实现的。 |
类别 | |
多态性可以分为重载和重写。 | 继承可以分为单级继承、多级继承、层次继承、混合继承和多重继承。 |
总结 - 多态性(polymorphi**) vs. oop中的继承(inheritance in oop)
多态性和继承是面向对象编程中的主要概念。OOP中多态性和继承的区别在于多态性是多个窗体的通用接口,而继承是使用现有类的属性和方法创建一个新的类。这两个概念在软件开发中被广泛使用。
下载oop中的pdf多态vs继承
引用
- 8.3什么是Java中的继承|讲座|教程,Telusko Learning,2014年5月15日。此处提供Java多态性教程,Telusko Learning,2014年5月15日。此处提供