多态性
是指以多种形式处理任何数据的能力。这个词本身的意思是
文章图片
意味着很多
文章图片
表示类型。 Scala通过虚函数, 重载函数和重载运算符实现多态。多态是面向对象编程语言最重要的概念之一。当使用父类引用来引用子类对象时, 多态性在面向对象的编程中最常见的用法发生了。在这里, 我们将看到如何以多种类型和多种形式表示任何功能。现实生活中多态的例子, 一个人在同一时间可以扮演不同的角色。就像一个女人在同一时间是母亲, 妻子, 雇员和女儿。因此, 同一个人必须具有许多功能, 但必须根据情况和条件实施每个功能。多态被认为是面向对象编程的重要特征之一。在Scala中, 该函数可以应用于多种类型的参数, 或者该类型可以具有多种类型的实例。
多态性有两种主要形式:
- 子类型化:在子类型化中, 子类的实例可以传递给基类
- 泛型:通过类型参数化, 可以创建函数或类的实例。
范例1:
// Scala program to shows the usage of
// many functions with the same name
class example
{ // This is the first function with the name fun
def func(a : Int)
{
println( "First Execution:" + a);
} // This is the second function with the name fun
def func(a : Int, b : Int)
{
var sum = a + b;
println( "Second Execution:" + sum);
} // This is the first function with the name fun
def func(a : Int, b : Int, c : Int)
{
var product = a * b * c;
println( "Third Execution:" + product);
}
} // Creating object
object Main
{
// Main method
def main(args : Array[String])
{
// Creating object of example class
var ob = new example();
ob.func( 120 );
ob.func( 50 , 70 );
ob.func( 10 , 5 , 6 );
}
}
输出如下:
First Execution:120Second Execution:120Third Execution:300
在上面的示例中, 我们有三个函数, 它们的名称相同(func), 但参数不同。
【Scala多态性介绍和用法指南】范例2:
// Scala program to illustrate polymorphism
// concept
class example 2
{
// Function 1
def func(vehicle : String, category : String)
{
println( "The Vehicle is:" + vehicle);
println( "The Vehicle category is:" + category);
} // Function 2
def func(name : String, Marks : Int)
{
println( "Student Name is:" + name);
println( "Marks obtained are:" + Marks);
} // Function 3
def func(a : Int, b : Int)
{
var Sum = a + b;
println( "Sum is:" + Sum)
}} // Creating object
object Main
{
// Main method
def main(args : Array[String])
{
var A = new example 2 ();
A.func( "swift" , "hatchback" );
A.func( "honda-city" , "sedan" );
A.func( "Ashok" , 95 );
A.func( 10 , 20 );
}
}
输出如下:
The Vehicle is:swiftThe Vehicle category is:hatchbackThe Vehicle is:honda-cityThe Vehicle category is:sedanStudent Name is:AshokMarks obtained are:95Sum is:30
推荐阅读
- Python中的多态性用法指南
- Linux中的ps命令示例和指南
- CSS按钮样式介绍和代码示例
- 如何使用JavaScript将Blob转换为base64编码()
- Python中的numpy.floor_divide()详细介绍
- C++中具有用户定义大小的2D矢量vector
- 公司的ER图详细介绍
- Python MySQL –插入操作详解
- 11个最佳免费音频编辑器软件程序推荐合集(哪个最好用())