找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1022|回复: 0

[分享] 基础 构造函数

[复制链接]

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-5-13 23:21:23 来自手机 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 csharp 于 2014-5-14 07:29 编辑

http://blog.csdn.net/missingshirely/article/details/11937281

事.NET开发接近两年了。对.NET这个东西依旧没有系统的去了解过。目前这份工作强度不太大,终于有时间可以捋一捋了。
1、普通构造函数:
  abstract class Shape
    {
       public const double pi = Math.PI;
       protected double x, y;
       public Shape(double x, double y)
       {
       this.x = x;
       this.y = y;
       Console.WriteLine("shape()");
       }
       public abstract double Area();
    }
如上所示:[访问修饰符] 类名 ([参数]){  [方法体] }
一个类可以有多个构造函数。只需参数不同(个数,类型)
2、继承时构造函数:
class Circle : Shape
    {
       public Circle(double radius)
       //    : base(10, 10)
       : base(radius, 0)
       {
       Console.WriteLine("Circle()");
       }
       public override double Area()
       {
       Console.WriteLine("Circle()return");
       return pi * x * x;
       }
    }
如上所示,如果父类构造函数必须有参数,在子类中需要将父类赋予参数进行实例化。
  
class Cylinder : Circle
    {
       public Cylinder(double radius, double height)
       : base(radius)
       {
       Console.WriteLine("Cylinder()");
       y = height;
       }
       public override double Area()
       {
       Console.WriteLine("Cylinder()return");
       return (2 * base.Area()) + (2 * pi * x * y);
       }
    }
class TestShapes
    {
       static void Main()
       {
       double radius = 2.5;
       double height = 3.0;
       Circle ring = new Circle(radius);
       Cylinder tube = new Cylinder(radius, height);
       Console.WriteLine("Area of the circle = {0:F2}", ring.Area());
       Console.WriteLine("Area of the cylinder = {0:F2}", tube.Area());
       // Keep the console window open in debug mode.
       Console.WriteLine("Press any key to exit.");
       //Console.ReadKey();
       //Console.ReadKey();
       Console.ReadLine();
       }
    }
本文中代码均摘自在线msdn。
执行
       Circle ring = new Circle(radius);
时,首先跳转执行Circle的构造函数,进入Circle构造函数的方法体之前,进入Circle的父类Shape,调用Shape的构造函数进行处理。
即:从父类的构造函数开始按照继承关系逐次执行。
c#中,继承一个父类,可继承多个接口
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-1-6 01:31 , Processed in 0.380891 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表