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);
            }
        }
    }
  • 相关阅读:
    面试题-Java多线程基础、实现工具和可见性保证(新更新版)
    Linux脚本-使用jar自动替换配置文件
    让ie兼容opacity属性的方法
    rgba兼容ie
    ie6的又一个变态问题
    长为112px的td里面有一个块span,居中时引起的兼容问题
    ie8中position不显示的问题
    haslayout
    CSS中zoom作用
    Vue学习笔记一
  • 原文地址:https://www.cnblogs.com/May-day/p/5835783.html
Copyright © 2011-2022 走看看