塔 · 第 三 条 约 定

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication15
{
    abstract class DBX
    {
        protected int dianshu;
        public void Accept()
        {
            Console.WriteLine("请输入点数");
            dianshu = Convert.ToInt32(Console.ReadLine());
        }

        /*public void Accept(int d)
        {
          * Console.WriteLine("");
            dianshu = d;
        }*/

        public abstract void Area();
        public abstract void bianchang(); 
    }

    class ZSJ : DBX
    {
        private double length;
        private double area;
        public override void bianchang()
        {
            Console.WriteLine("请输入正三角形的边长");
            length = Convert.ToInt32(Console.ReadLine());
        }
        public override void Area()
        {
            area = Math.Sqrt(3) * length * length / 4;
            Console.WriteLine("正三角形的面积为: ");
            Console.WriteLine(area);
        }
    }

    class Rectangle : DBX
    {
        private double length;
        private double width;
        private double area;
        public override void bianchang()
        {
            Console.WriteLine("请输入长方形的长");
            length = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入长方形的宽");
            width = Convert.ToInt32(Console.ReadLine());
        }
        public override void Area()
        {
            area = length * width;
            Console.WriteLine("长方形的面积为:");
            Console.WriteLine(area);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            ZSJ zsj = new ZSJ();
            Rectangle r = new Rectangle();
            zsj.bianchang();
            zsj.Area();
            r.bianchang();
            r.Area();
            Console.ReadKey();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication15
{
    abstract class DBX
    {
        protected int dianshu;
        public void Accept()
        {
            Console.WriteLine("请输入点数");
            dianshu = Convert.ToInt32(Console.ReadLine());
        }

        /*public void Accept(int d)
        {
          * Console.WriteLine("");
            dianshu = d;
        }*/

        public abstract void Area();
        public abstract void bianchang(); 
    }

    class ZSJ : DBX
    {
        private double length;
        private double area;
        public override void bianchang()
        {
            Console.WriteLine("请输入正三角形的边长");
            length = Convert.ToInt32(Console.ReadLine());
        }
        public override void Area()
        {
            area = Math.Sqrt(3) * length * length / 4;
            Console.WriteLine("正三角形的面积为: ");
            Console.WriteLine(area);
        }
    }

    class Rectangle : DBX
    {
        private double length;
        private double width;
        private double area;
        public override void bianchang()
        {
            Console.WriteLine("请输入长方形的长");
            length = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入长方形的宽");
            width = Convert.ToInt32(Console.ReadLine());
        }
        public override void Area()
        {
            area = length * width;
            Console.WriteLine("长方形的面积为:");
            Console.WriteLine(area);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            ZSJ zsj = new ZSJ();
            Rectangle r = new Rectangle();
            zsj.bianchang();
            zsj.Area();
            r.bianchang();
            r.Area();
            Console.ReadKey();
        }
    }
}

遇到的大问题:基本没有

遇到的小问题:通过查阅塔的第二条约定解决 

新学到:

1、在派生类中,通过包括使用 override 修饰符的属性声明,可以重写抽象的继承属性

2、重写属性声明必须指定与继承属性完全相同的访问修饰符、类型和名称,并且被重写的属性必须是 virtual、abstract 或override 的。

3、抽象方法必须声明在抽象类中,abstract 修饰符用于表示所修饰的类是不完整的,并且它只能用作基类,而且抽象类不能被密封。

4、抽象类可以包含抽象方法和抽象访问器

原文地址:https://www.cnblogs.com/wshyj/p/6370387.html