13.继承和多态的实例 C#

这是一个动物园的动物发出不同的声音,使用了继承和多态

cs 复制代码
using System;
using System.Collections.Generic;

namespace InheritanceAndPolymorphismExample
{
    //一个动物类,包含属性:名称。包含方法:发出叫声
    public class Animal
    {
        public string Name { get; set; }
        public virtual void Speak()
        {
            Console.WriteLine("The animal makes a sound.");

        }
    }

    //从动物类继承一个狗类,多态一个方法:狗叫
    public class Dog : Animal
    {
        public override void Speak()
        {
            Console.WriteLine("The dog says:Woof!");

        }
    }

    //从动物类继承一个猫类,多态一个方法:猫叫
    public class Cat : Animal
    {


        public override void Speak()
        {
            Console.WriteLine("The cat says:Meow!");

        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            //新建一个列表,叫动物们,对应的是animal类,并引入实例,狗猫动物
            List<Animal> animals = new List<Animal>
            {

                new Dog{Name="Buddy" },
                new Cat{Name="Whiskers"},
                new Animal{Name="Generic Animal" }

            };

            //从列表中读取,全部执行方法
            foreach (Animal animal in animals)
            {
                Console.WriteLine($"Animal:{animal.Name}");
                animal.Speak();
                Console.WriteLine();


            }
            Console.ReadLine();

        }
    }




}

输出结果:

cs 复制代码
The animal:Leo
The cat says:Meow!

The animal:Whiskers
The dog says:Woof!

The animal:Generic Animal
The Animal makes a sound.
相关推荐
武藤一雄10 小时前
C# 万字拆解线程间通讯?
后端·微软·c#·.net·.netcore·多线程
lljss202011 小时前
C# 定时器类实现1s定时器更新UI
开发语言·c#
白杨攻城狮11 小时前
C# 关于 barierr 心得
开发语言·c#
江沉晚呤时11 小时前
延迟加载(Lazy Loading)详解及在 C# 中的应用
java·开发语言·microsoft·c#
专注VB编程开发20年11 小时前
C#用API添另静态路由表
c#·静态路由
我是唐青枫12 小时前
C# Params Collections 详解:比 params T[] 更强大的新语法
c#·.net
Zhen (Evan) Wang12 小时前
从客户端的HTTP 请求到后端 .NET 8 API的整个生命周期 - 处理请求和响应的主要方式
c#·.net
用户2986985301412 小时前
如何在 C# 中创建、读取和更新 Excel 文档
后端·c#·excel
Zhen (Evan) Wang14 小时前
从客户端的HTTP 请求到后端 .NET 8 API的整个生命周期
c#·.net
浅陌sss14 小时前
C#中记录一下使用字符串文本调用泛型方法
c#