C#学习笔记(三)

原创 2004年12月29日 20:57:00

C#学习笔记(三)
by heiyeluren


学习《Visual C#入门经典》学习笔记

1. 类的定义和继承

定义一个类使用class关键字:
class Class1
{
 // members
}

默认定义的类是只能本工程中的其他类和函数才能访问的,我们也可以使用显式的方式定义我们的类是私有的:
internal class Class1
{
 // members
}

加入我们要让别的工程也能够访问我们的类,我们就定义成公共的,别的工程也能访问了:
public class Class1
{
 // members
}

同时我们也能定义类为抽象类,只能继承,不能实例化:
public abstract class Class1
{
 // members
}

我们也能够定义类只能实例化,不能继承:

public sealed class Class1
{
 // members
}

一个类继承抽象类,那么所有抽象类的成员都将继承,另外,相应的访问方式必须是符合规则的,一个公共的基类,派生类能够是公共的,也

可以是私有的,一下定义合法:
public class MyBase
{
 // members
}

internal class MyClass : MyBase
{
 // members
}

但是如果是个私有的基类,那么派生类就只能是私有的,一下定义是非法的:
internal class MyBase
{
 // members
}

public class MyClass : MyBase
{
 // members
}

如果没有任何基类,那么是继承的就是基类System.Object,它在C#中是很核心的基类,基本上我们所有基类的根类就是它,。

同时我们的也能够继承接口,对接口的成员进行实现:
public class MyClass : IMyInterface
{
 // members
}

如果一个类继承的是接口的成员,那么所有接口的成员,都必须在类中进行实现,如果不想给接口的成员进行实现,可以使用“空”,就是函

数没有任何代码。

如果我们要同时继承基类和接口,那么基类就必须在接口前面,一下定义是非法的:
public class MyClass : IMyInterface, MyBase
{
 // members
}

正确的指定接口和基类的方法如下:
public class MyClass : MyBase, IMyInterface
{
 // members
}

当然,我们也能够同时指定多个接口:
public class MyClass : MyBase , IMyInterface, IMySecondInterface
{
 // members
}

 

2. 接口的定义和继承

声明一个接口,跟声明一个类差不多吧,使用interface为关键字:

interface IMyInterface
{
 // interface members
}

同样接口也有私有和公共访问的方式:

public interface IMyInterface
{
 // interface members
}

但是abstract和sealed不能用,因为接口本来就是用来继承的,但是无法实例化。

接口同样也能继承,而且接口不象类,只有一个基类,接口继承可以有多个接口:

public interface IMyInterface : IMyBaseInterface, IMyBaseInterface2
{
 // interface members
}

接口继承和System.Object的方式比较类似,就是通过接口的多台性来确定使用那个接口,接口不能实例化。

 


3. 类和接口的实现例子

// 定义命名空间
namespace TestApp
{
 // 定义一个抽象的基类
 public abstract class MyBase
 {
 }
 
 // 继承抽象基类
 internal class MyClass : MyBase
 {
 }

 // 定义接口1
 public interface IMyBaseInterface
 {
 }

 // 定义接口2
 internal interface IMyBaseInterface2
 {
 }

 // 同时继承接口1和接口2
 internal interface IMyBaseface: IMyBaseInterface, IMyBaseInterface2
 {
 }

 // 继承基类和接口1
 internal sealed class MyComplexClass : MyClass, IMyInterface
 {
 }

 // 定义可以执行的类
 class Class1
 {
  // 静态的Mian方法,一般就是应用程序的入口
  static void Main(string[] args)
  {
   MyComplexClass myObj = new MyComplexClass();
   Console.WriteLine(myObj.ToString());
  }
 }
}


基本上了解的就这么多了,呵呵~~~~下次再聊点别的!!

 

WriteTime: 2004-12-29 21:00

 

版权声明:本文为黑夜路人原创文章,未经允许请勿转载

libSVM学习笔记

目录 一、         LibSVM文件结构说明... 2 二、         LibSVM安装及测试... 2 1.下载libsvm... 2 2.解压至指定目录... 2 ...
  • yansmile1
  • yansmile1
  • 2015年12月07日 17:18
  • 548

TensorFlow官方教程学习笔记之3-用于机器学习专家学习的MNIST数据集(MNIST For ML Beginners)

```python from __future__ import absolute_importfrom __future__ import divisionfrom __future__ impor...
  • u010837794
  • u010837794
  • 2017年07月17日 22:21
  • 508

【C#】C#基础学习笔记

【C#】C#基础学习笔记 由于之前用过几年C/C++,现只针对C#的差异或C/C++遗忘的知识点学习总结。 1、数据类型: 值类型:和C/C++类似。 指针类型:和C/C++类...
  • woaini454186694
  • woaini454186694
  • 2016年05月28日 18:48
  • 840

Ionic3入门

新手入门ionic教程 神奇链接
  • qq_38082661
  • qq_38082661
  • 2017年10月11日 11:57
  • 80

CAS学习笔记(三)

十、使CAS支持HTTP协议我们知道CAS SSO 是基于HTTPS协议的单点登陆,如果要用HTTP协议进行传输,那么就需要修改CAS的相关的配置文件,图了方便,但是安全性大打折扣。10.1 修改...
  • u011372122
  • u011372122
  • 2015年07月19日 19:26
  • 361

记《learning hard C#学习笔记》 书中一个错误

以前学过c# 但是不够系统 最近读了一本《learning hard C#学习笔记》 系统的学习一下 读到50页 发现一个问题,这本书用的单例有问题  主要问题: 1 首先public stati...
  • w605283073
  • w605283073
  • 2016年05月03日 15:59
  • 812

Learning hard C#学习笔记

委托: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespac...
  • husheng0
  • husheng0
  • 2016年04月25日 02:55
  • 1784

C Sharp与.net学习笔记(四)

接前面MAF,看看MEF插件框架(它是.NET4的组成部分,所以装个Visual C#2010 express) 和 MAF 比起来,这个易用性太高了。只需要定义一个接口,然后Import、Expo...
  • dbzhang800
  • dbzhang800
  • 2012年01月16日 04:15
  • 3864

css3学习笔记(一)

CSS3学习笔记 一,兼容性 二,边框 三,颜色 四,文字,文本
  • SirM2z
  • SirM2z
  • 2015年05月22日 20:23
  • 883

学习OpenCV的学习笔记系列(三)显示图片及视频

OpenCV是计算机视觉库,那么处理的对象无非两个:“图片”及“视频”(其实视频也是被解压成单帧图像来处理的,总的来说,还是处理图像)。 那么要想学习OpenCV,第一步必须知道OpenCV是怎么打开...
  • bestgonghuibin
  • bestgonghuibin
  • 2014年09月04日 20:50
  • 1444
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#学习笔记(三)
举报原因:
原因补充:

(最多只允许输入30个字)