zoukankan      html  css  js  c++  java
  • 抽象,密封,多态和继承的例子

    一,父类Animal

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Test3
    {
        public abstract class Animal
        {
            //获得声音的方法
            public virtual string GetShoutSound()
            {
                return "";
            }
        }
    }

    二,子类Cat和Dog

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Test3
    {
        public class Dog : Animal
        {
            public override string GetShoutSound()
            {
                return "旺旺旺旺!!!!!";
            }
        }
    }

    子类二

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Test3
    {
        public class Cat : Animal
        {
            //重写抽象方法中的,虚方法
            public override string GetShoutSound()
            {
                return "喵喵喵喵!!!!!";
            }
        }
    }

    三,密封功能类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Test3
    {
        //密封Dog的speak功能,密封类不可以被继承
        sealed class Speak : Dog
        {
            public string DogSpeak()
            {
                return this.GetShoutSound();
            }
        }
    }

    四,输出:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Test3
    {
        class Program
        {
            static void Main(string[] args)
            {
                Animal animal1 = new Dog();
                Animal animal2 = new Cat();
                Speak speak = new Speak();
                string a1 = animal1.GetShoutSound();
                string a2 = animal2.GetShoutSound();
                string a3 = speak.DogSpeak();    //实现密封的功能
                Console.WriteLine(a1 + a2 + "密封功能实现:" + a3);
            }
        }
    }
  • 相关阅读:
    宝塔相关问题
    免费xshell下载
    服务器断电mysql无法恢复
    mysql相关知识
    svn
    tortoisesvn下载 和svn 安装
    nginx+lua乐观锁实现秒杀
    c# asp.net 生成唯一订单号
    c# 关闭软件 进程 杀死进程
    国内开源软件镜像地址搜集
  • 原文地址:https://www.cnblogs.com/May-day/p/5835783.html
Copyright © 2011-2022 走看看