多态性
是指以多种形式处理任何数据的能力。这个词本身的意思是
意味着很多
表示类型。 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:120
Second Execution:120
Third Execution:300
在上面的示例中, 我们有三个函数, 它们的名称相同(func), 但参数不同。
范例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:swift
The Vehicle category is:hatchback
The Vehicle is:honda-city
The Vehicle category is:sedan
Student Name is:Ashok
Marks obtained are:95
Sum is:30