• 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
        }
    }
    
    
  • 相关阅读:
    自定义异常
    异常处理
    以圆类 Circle 及立体图形类 Solid 为基础设计圆锥类 Cone
    以圆类 Circle 及立体图形类 Solid 为基础设计圆柱类 Cylinder
    《大道至简:软件工程实践者的思想》读后感
    以点类 Point 及平面图形类 Plane 为基础设计圆类 Circle
    以圆类 Circle 及立体图形类 Solid 为基础设计球类 Sphere
    以点类 Point 及平面图形类 Plane 为基础设计三角形类 Triangle
    设计并实现大数类 BigNum
    支付宝支付(三)—APP支付(alipay.trade.app.pay)
  • 原文地址:https://www.cnblogs.com/LcVong/p/13609247.html
Copyright © 2020-2023  润新知