zoukankan      html  css  js  c++  java
  • C#类的继承多态(虚方法,隐藏方法、抽象类和抽象方法)

    实现的一个DEMO程序,见代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                //-------虚方法---------------
    
                Fruit fruit = new Peach();
    
                //Fruit fruit = new Fruit();
    
                Console.WriteLine( fruit.Juice());
    
                //-----------------------------------
    
                //------------隐藏方法---------------
    
                Peach fruit2 = new Peach();
    
                //Fruit fruit2 = new Apple();
    
                Console.WriteLine(fruit2.LL());
    
    
                //-------------------------------------
    
                //-------------抽象方法------------------------
                //因为抽象类无法实例化,所以抽象方法没有办法被调用,也就是说抽象方法永远不可能被实现。
    
                //CC bB = new CC();
    
                BB bB = new BB();
    
                Console.WriteLine(bB.area());
    
                //-----------------------------------------------
    
                Console.ReadKey();
            }
    
            #region--------------虚方法和隐藏方法类--------------------------
            class Fruit
            {
                public virtual string Juice()//虚方法(主类使用virtual关键字)
                {
                    string juice = "null";
    
                    return juice;
                }
                public string LL()//隐藏方法
                {
                    string ll = "null";
    
                    return ll;
                }
            }
            class Apple : Fruit
            {
                public override string Juice()//虚方法(副类使用override关键字)
                {
                    string juice = "applejuice";
    
                    return juice;
                }
                public new string LL()//隐藏方法(副类使用new关键字)
                {
                    string ll = "applell";
    
                    return ll;
                }
            }
            class Peach : Fruit
            {
                public override string Juice()///虚方法(副类使用override关键字)
                {
                    string juice = "Peachjuice";
    
                    return juice;
                }
                public new string LL()//隐藏方法(副类使用new关键字)
                {
                    string ll = "peachll";
    
                    return ll;
                }
            }
            class Pear : Fruit
            {
                public override string Juice()//虚方法(副类使用override关键字)
                {
                    string juice = "Pearjuice";
    
                    return juice;
                }
                public new string LL()//隐藏方法(副类使用new关键字)
                {
                    string ll = "pearll";
    
                    return ll;
                }
            }
            #endregion
    
            #region -------------------抽像方法类------------------------
    
            public abstract class AA//抽象类(配合abstract字段使用)
            {
                public abstract string area();//抽象方法(主类配合abstract字段使用)
            }
            public class BB : AA
            {
                public override string area()//抽象方法(副类配合override字段使用实现抽象方法)
                {
                    string ar = "BB";
    
                    return ar;
                }
            }
            public class CC : AA
            {
                public override string area()//抽象方法(副类配合override字段使用实现抽象方法)
                {
                    string ar = "CC";
    
                    return ar;
                }
            }
            #endregion
        }
    }
    
    
  • 相关阅读:
    移动端测试小技巧分享
    【转】GT 的性能测试方案解析
    【测试工具】Macaca 自动遍历器 NoSmoke
    接口自动化测试
    【学习资料】 持续集成---测试自动化学习
    pipeline-安全测试
    【转】Appium 优化版
    SpringBoot2(003):简要回顾“HelloWorld” web 工程
    idea创建同名的maven工程时报错:Failed to create a Maven project 'xxx/pom.xml' already exists in VFS
    Maven:Unable to import maven project: See logs for details
  • 原文地址:https://www.cnblogs.com/LcVong/p/13609247.html
Copyright © 2011-2022 走看看