[C#]一点面对对象编程

全部都是类

在C#中,所有的代码都会包含在一个类当中,而程序的执行入口会在一个唯一的main方法当中。而类中的方法也会存在着不同,比如public,private等。
为了保护数据,一般来说我们不将一个类中的元素设置为public,以防被随意的更改,但是如果设置为private的话,程序的执行又会存在诸多不便。所以,C#提供一种方便的功能,属性,我们将一个属性赋予一个变量,就可以通过这个属性来存取这个变量了。这样做的好处就是我们不需要担心数据被随意的访问并且可以设置一个变量的存取权限。

子类继承

子类继承的方法十分简单,我们可以按照如下的形式:

public class Student : People
{
    //code, function or variables
}

上面的代码就表示了Student是People的一个子类,可以从子类当中继承诸多的变量和方法。并且可以重写继承而来的方法。
当然,有些类是不能够被继承的,这个概念就有点像java中的final类,而在C#当中,这个关键字是seal.

Abstract Class

有的时候,存在有很多的类有相似的属性,我们可以在一个类当中规定要实现的代码,而这样的类则被称为Abstract Class,如下:

public abstract class Student
{
    public virtual void func1(){}
    public abstract void func2();
}

如果方法被virtual修饰,则被实现,在这个类被继承的时候可以被重写,而被abstract修饰的话在这里不能实现这个方法,而在继承的子类当中必须实现这个内容。

接口

接口就是有点像abstract class的一个概念,规定了实现该接口的类必须要实现的方法。我们可以定义一些属性,方法和事件,每一个实现了这个接口的类都必须实现这些功能。
比如下面这个接口:

// Defining an Interface
public interface ILoyaltyCardHolder
{
   int TotalPoints { get; }
   int AddPoints(decimal transactionValue);
   void ResetPoints();
}

实现这个接口的一个类:

// Implementing an Interface
public class Customer : ILoyaltyCardHolder
{
   private int totalPoints;
   public int TotalPoints
   {
      get { return totalPoints; }
   }
   public int AddPoints(decimal transactionValue)
   {
      int points = Decimal.ToInt32(transactionValue);
      totalPoints += points;
   }
   public void ResetPoints()
   {
      totalPoints = 0;
   }
   // Other members of the Customer class.   
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值