不是直接没有,一个实例Square
不能改为实例Triangle
.
你可以有一个方法,它返回Shape
基类Shape 上定义的实例:
public abstract class Shape
{
public Shape Mutate(int numberOfSides)
{
// over simplified example:
if(numberOfSides == 3)
return new Triangle();
}
}
public class Triangle : Shape {}
public class Square : Shape {}
Run Code Online (Sandbox Code Playgroud)
用法
var squ = new Square();
var triangle = squ.Mutate(3);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
139 次 |
最近记录: |