• 抽象,密封,多态和继承的例子


    一,父类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);
            }
        }
    }
  • 相关阅读:
    07:常识性问题
    知识梳理
    Linux之防火墙iptables
    centos常用命令
    Centos7 内核升级及删除无用内核
    Java线程之Callable、Future
    Java线程之Timer
    Java线程之ThreadLocal
    Java线程之synchronized
    Java线程之wait()、notify()、notifyAll()
  • 原文地址:https://www.cnblogs.com/May-day/p/5835783.html
Copyright © 2020-2023  润新知