CSDN博客

img heiyeshuwu
博客专家

C#学习笔记(三)

发表于2004/12/29 20:57:00  1786人阅读

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

 

0 0

相关博文

我的热门文章

img
取 消
img