VB.NET中的多态性

use*_*041 1 .net vb.net polymorphism

在VB.NET中,假设我有一个功能

Public Function Foo(ByVal currentShape as Shape)
Run Code Online (Sandbox Code Playgroud)

而不是传入一个Shape对象,我传入一个像这样Shape调用的子类Square:

Dim square As Square = new Square()
Foo(square)
Run Code Online (Sandbox Code Playgroud)

在传入对象之前,是否需要将Square对象转换为Shape对象?如果是这样,我该怎么做?

SLa*_*aks 6

Square 是一个 Shape.
你不需要转换任何东西.

所有子类都可以隐式转换为它们的超类.