• csharp 面向对象编程


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Shape
    {
        /**
         * 抽象形状类
         */
        public abstract class Shape
        {
            private int edge;
            //构造函数 
            public Shape(int edge)
            {
                this.edge = edge;
            }
            //抽象类实现的方法,子类可以重用
            public int GetEdge()
            {
                return this.edge;
            }
            //抽象方法,子类必须重写,并在声明上加上override
            public abstract int CalcArea();
        }
    
        /**
         * 三角形类,继承自形状类
         */
        public class Triangle : Shape
        {
            private int bottom;
            private int height;
            //构造函数,构造的同时调用父类指定构造器
            public Triangle(int bottom, int height)
                : base(3)
            {
                this.bottom = bottom;
                this.height = height;
            }
            //重写同名方法
            public override int CalcArea()
            {
                return this.bottom * this.height / 2;
            }
        }
    
        /**
         * 矩形类,继承自形状类
         */
        public class Rectangle : Shape
        {
            private int bottom;
            private int height;
            //构造函数,构造的同时调用父类指定构造器
            public Rectangle(int bottom, int height)
                : base(4)
            {
                this.bottom = bottom;
                this.height = height;
            }
            //重写同名方法
            public override int CalcArea()
            {
                return this.bottom * this.height;
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                //测试,可用父类映射子类
                Shape triangle = new Triangle(4, 5);
                Console.WriteLine(triangle.GetEdge());
                Console.WriteLine(triangle.CalcArea());
    
                Shape rectangle = new Rectangle(4, 5);
                Console.WriteLine(rectangle.GetEdge());
                Console.WriteLine(rectangle.CalcArea());
            }
        }
    }
  • 相关阅读:
    这是一篇通过open live writer发布的博文
    网卡重启失败
    2020年1月目标
    二、安装docker
    JS中的数据类型,包含ES6,set和map等等
    关于prototype和__proto__,最好的一些解释
    JS中call,apply和bind方法的区别和使用场景
    ThinkPHP5生成word文档代码库
    js/jquery操作iframe
    PHP技术--思维导图
  • 原文地址:https://www.cnblogs.com/zfc2201/p/3561106.html
Copyright © 2020-2023  润新知