CSharp学习笔记之六 类

众所周知,C#是一种面向对象的语言。对于面向对象语言,所具备的特征就是抽象、继承、封装、多态。

抽象:所谓的抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

继承:所谓的继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

多态:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

了解完面向对象的基本特征之后,我们来开C#中的类。首先来介绍一下什么是类.

在现实世界中,经常有属于同一类的对象。例如,你的自行车 只是世界上很多自行车中的一辆。在面向对象软件中,也有很 多共享相同特征的不同的对象:矩形、雇用记录、视频剪辑 等。可以利用这些对象的相同特征为它们建立一个蓝图。对象 的软件蓝图称为类。

类是定义同一类所有对象的变量和方法的蓝图或原型。例如,可以建立一个定义包含当前档位等实例变量的自行车 类。这个类也定义和提供了实例方法(变档、刹车)的实现。

 

下面来解释一下类的基本定义:

在C#中使用class 来定义一个类

class MyClass
{
      // class code
}

在上面你的代码中我们定义了一个MyClass类,定义一个类之后,我们就可以在项目中来对该类进行实例化。 比如说MyClass C1。这样就是实例化一个MyClass的类。在默认情况下,类的声明是内部的,也就是说,该类在声明过后,只能够在该项目中进行访问。

其实类也可以通过特殊字符来来对该类的进行一个修饰,具体实例如下所示:

public clas MyClass
{
     // MyClass code
}

这样我们就定义了一个公共的类,而这个公共的类,就不仅仅是使用在当前的项目里面,而且可以被其他的项目进行一个访问。

另外我们还可以通过abstract和sealed来定义个抽象类和密封的类,所谓的密封类,就是不能够用来进行的继承的类,所谓的抽象类,就是不能够通过该类进行实例化对象的一个类。

具体的定义事例如下:

public sealed class MyClass
{
     // MyClass code
}

这个例子就是定义了一个密封的类。

类的继承在C#中的类的继承其实很简单,就是通过一个子类:父类,来进行的一个类的继承的,当让C#和java是一样的,类的继承只支持单继承,而不支持多继承。如果继承了一个抽象类,就必须实现所继承的所有抽象成员(除非派生类也是抽象的

public class base
{
    // Base class code
}

public calss MyClass:base
{
    //  MyClass code
}


上面的例子给了一个类的继承的例子。

编译器不允许派生类的可访问性比其基类更高。也就是说,内部类可以继承于一个公共类,但公共类不能继承于一个内部类。因此,下述代码是合法的:

public class MyBase
{
    // Class members;
}
internal class MyClass : MyBase
{
    // Class members;
}

而下面的代码是不合法的,编译器是不能够编译通过的:

internal class MyBase
{
    // Class members;
}
public class MyClass : MyBase
{
    // Class members.
} 

上面已经介绍了类只能进行单继承,不支持多继承的,但是有些情况要进行多继承该怎么办呢,在C#中是通过接口来实现的。比如说下面的东西来进行的实现

public class MyClass : IMyInterface{// Class members.}

 

然后呢,这里附上类的修饰符参考表:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值