zoukankan      html  css  js  c++  java
  • 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());
            }
        }
    }
  • 相关阅读:
    MySQL InnoDB 存储引擎探秘
    MySQL优化面试
    技术面试老是有劲使不出,该怎么办?
    详解RPC远程调用和消息队列MQ的区别
    ConcurrentHashMap1.8源码分析
    kafka topic制定规则
    GitLab本地、远程更新已经fork的项目
    Swagger2使用参考
    分布式配置中心选型
    搭建Elasticsearch平台
  • 原文地址:https://www.cnblogs.com/zfc2201/p/3561106.html
Copyright © 2011-2022 走看看