在C#中,内部类(Nested Class)是指在一个外部类(Outer Class)中定义的类
Animal
:public class Animal
{
public virtual void MakeSound()
{
Console.WriteLine("The animal makes a sound");
}
}
Animal
的内部类Dog
和Cat
:public class Animal
{
public virtual void MakeSound()
{
Console.WriteLine("The animal makes a sound");
}
public class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("The dog barks");
}
}
public class Cat : Animal
{
public override void MakeSound()
{
Console.WriteLine("The cat meows");
}
}
}
在这个例子中,我们将Dog
和Cat
类定义为Animal
的内部类,并且它们都重写了MakeSound()
方法。
Main()
方法中测试多态性:public static void Main(string[] args)
{
Animal myAnimal = new Animal();
Animal.Dog myDog = new Animal.Dog();
Animal.Cat myCat = new Animal.Cat();
myAnimal.MakeSound(); // 输出 "The animal makes a sound"
myDog.MakeSound(); // 输出 "The dog barks"
myCat.MakeSound(); // 输出 "The cat meows"
}
在这个例子中,我们创建了一个Animal
实例、一个Dog
实例和一个Cat
实例。当我们调用它们的MakeSound()
方法时,根据实际的对象类型(Animal
、Dog
或Cat
),会调用相应的重写版本的方法。这就是内部类的多态性。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。