• 封装、继承、多态 基础


    /*              #########                       
                  ############                     
                  #############                    
                 ##  ###########                   
                ###  ###### #####                  
                ### #######   ####                 
               ###  ########## ####                
              ####  ########### ####               
             ####   ###########  #####             
            #####   ### ########   #####           
           #####   ###   ########   ######         
          ######   ###  ###########   ######       
         ######   #### ##############  ######      
        #######  #####################  ######     
        #######  ######################  ######    
       #######  ###### #################  ######   
       #######  ###### ###### #########   ######   
       #######    ##  ######   ######     ######   
       #######        ######    #####     #####    
        ######        #####     #####     ####     
         #####        ####      #####     ###      
          #####       ###        ###      #        
            ###       ###        ###              
             ##       ###        ###               
    __________#_______####_______####______________
        身是菩提树,心如明镜台,时时勤拂拭,勿使惹尘埃。
                    我们的未来没有BUG              
    * ==============================================================================
    * Filename: AbstractScript
    * Created:  $time$
    * Author:   WYC
    * Purpose:  封装、继承、多态
    * ==============================================================================
    */
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class AbstractScript : MonoBehaviour {
    
        
        void Start () {
            Circle circle = new Circle();
            circle.R = 20;
    
            Rectangle rectangle = new Rectangle();
            rectangle.Width = 20;
            rectangle.Height = 30;
    
            List<Shape> shapeList = new List<Shape>();
            shapeList.Add(circle);
            shapeList.Add(rectangle);
    
            foreach (var shape in shapeList)
            {
                shape.PrintArea(shape.CalculateArea());
                shape.PrintPerimeter(shape.CalculatePerimeter());
            }
    
        }
    }
    
    public abstract class Shape {
    
        public string ShapeName { get; private set; }
    
        public Shape(string shapeName) {
            ShapeName = shapeName;
        }
    
        public virtual void PrintPerimeter(double perimeter) {
            Debug.Log(ShapeName + "perimeter:" + perimeter);
        }
    
        public virtual void PrintArea(double area) {
            Debug.Log(ShapeName + "Area:" + area);
        }
    
        public abstract double CalculatePerimeter();
    
        public abstract double CalculateArea();
    }
    public class Circle : Shape
    {
        public double R { get; set; }
    
        public Circle() : base("") {
            this.R = 0;
        }
    
        public override double CalculatePerimeter()
        {
            return 2 * Math.PI * R;
        }
    
        public override double CalculateArea()
        {
            return Math.PI * R * R;
        }
    }
    
    public class Rectangle : Shape
    {
        public double Width { get; set; }
        public double Height { get; set; }
    
        public Rectangle() : base("长方形")
        {
            this.Width = 0;
            this.Height = 0;
        }
    
        public override double CalculatePerimeter()
        {
            return (Width + Height) * 2;
        }
    
        public override double CalculateArea()
        {
            return Width * Height;
        }
    }
  • 相关阅读:
    Dockerize a .NET Core application
    Images之管理image
    Images之Dockerfile中的命令2
    Images之Dockerfile中的命令1
    Docker Builders:Builder pattern vs. Multi-stage builds in Docker
    Images之multi-stage builds
    Images之base image
    Images之Dockerfiles
    Docker 开发最佳实践
    Docker 开发概述
  • 原文地址:https://www.cnblogs.com/mclll520/p/7814392.html
Copyright © 2020-2023  润新知